{"id":96835,"plugin_id":"plugin_asdk_app_6acf8381cca08191bfb3eb7305fb6970","kind":"skill","collection_source":"plugin_package","comparison_source":"plugin_package","observed_at":"2026-11-14T18:10:16.416Z","digest":"c735b067e4860df350642e316cefd7a385ba7808fa890136bb08decbe348cd50","against":94886,"payload":{"description":"Use when the user wants an ArchLang .arch floor plan delivered as files, e.g. \"export this plan as PDF\", \"give me a DXF for CAD\", \"a PNG I can paste into a document\", \"one sheet per floor\", \"print it at 1:50 on A3\". Covers SVG, PNG, PDF and DXF output, paper size and scale, multi-storey plans and batches, through the archlang CLI, or through the ArchLang MCP tools and the Playground where the CLI cannot run. Not for writing or changing the plan itself.","included_files":[],"name":"archlang-export","skill_md_contents":"---\nname: archlang-export\ndescription: Use when the user wants an ArchLang .arch floor plan delivered as files, e.g. \"export this plan as PDF\", \"give me a DXF for CAD\", \"a PNG I can paste into a document\", \"one sheet per floor\", \"print it at 1:50 on A3\". Covers SVG, PNG, PDF and DXF output, paper size and scale, multi-storey plans and batches, through the archlang CLI, or through the ArchLang MCP tools and the Playground where the CLI cannot run. Not for writing or changing the plan itself.\nlicense: MIT\ncompatibility: Needs a shell with Node 18+ and the archlang CLI (npx -y @chanmeng666/archlang@1.61.0, or npm i -g @chanmeng666/archlang@1.61.0 for a global archlang). PNG and PDF need optional packages that the CLI can install with --install. Without them, the ArchLang MCP tools and a browser.\n---\n\n# Export a plan\n\nProduce drawing files from a `.arch` plan.\nIf `archlang` is not on the path, write `npx -y @chanmeng666/archlang@1.61.0` in its place.\nNever run a bare `arch`: on Linux, macOS and Git Bash that name is the coreutils command.\n\nThis skill is a workflow, not a language reference. `archlang compile --help` lists every format and\nflag; `archlang spec` describes the `paper` and `scale` statements.\n\n## Steps\n\n1. **Check the plan compiles.** `archlang compile plan.arch --json` writes nothing and reports `ok`\n   and the diagnostics. Do not export a plan with errors; fix it first.\n2. **Make sure it is a sheet.** A plan with no `paper` statement has no physical size.\n   `archlang finish plan.arch --only sheet --dry-run --json` shows the sheet statements the plan lacks\n   (paper, scale, dimensions, title block, room schedule, legend). `archlang finish plan.arch --only sheet`\n   adds them on the smallest sheet the drawing fits.\n3. **If the user names a paper size or a scale,** edit the plan's `paper` and `scale` statements\n   to those values and compile again. If the drawing does not fit the sheet the plan declares,\n   `archlang finish plan.arch --reissue -o issued.arch` writes a copy in which only `paper` and `scale`\n   are replaced by ones that fit. Tell the user when the sheet they asked for cannot hold the\n   drawing at that scale.\n4. **Export.** Pick the format by what the file is for:\n   - SVG, for the web or further editing: `archlang compile plan.arch -o plan.svg --json`\n   - PDF, for print at true size: `archlang compile plan.arch -f pdf -o plan.pdf --install --json`\n   - PNG, for a document or a chat: `archlang compile plan.arch -f png -o plan.png --install --json`\n     (`-s 2` doubles the raster scale)\n   - DXF, for CAD: `archlang compile plan.arch -f dxf -o plan.dxf --json`\n5. **Multi-storey plans.** A plan written with `level` blocks compiles to one file per storey,\n   named `<stem>.L<level>.<ext>`, and the JSON result lists them in `outputs[]`. To write one\n   storey to one named file, add `--level <n>`.\n6. **Many plans at once.** Create the output directory first; `batch` does not create it. Then\n   `archlang batch a.arch b.arch -f pdf -o out/ --json` renders each input into it and returns one\n   result row per input.\n7. **Confirm what was written.** Read `output` (or `outputs[]` for a multi-storey plan) and\n   `bytes` in the JSON result and list the files for the user. For a PNG you can look at it; for the other formats report the\n   path, the sheet size and the scale.\n\n## Report to the user\n\n- Each file written, with its format.\n- The paper size and scale of the sheet, and whether you or `finish` chose them.\n- Any storey or input that failed, with its diagnostic.\n\n## When the CLI cannot run\n\nSome hosts have no shell, or a shell that cannot reach npm: in ChatGPT's sandbox `npx` only times\nout, and a retry ends in `ENOTCACHED`. Stop after the first such failure and do not substitute\nanother PDF tool. With the ArchLang MCP tools:\n\n1. Set the plan's `paper` and `scale`, then check it with the `validate` tool and render it with\n   the `compile` tool. `W_SCALE_OVERFLOW` means the sheet cannot hold the drawing at that scale:\n   choose a smaller scale or a larger sheet, and say which.\n2. For SVG, `compile` returns the drawing.\n3. For PDF, PNG or DXF, call the `link` tool and give the user its `playground` URL. In the\n   Playground they open Share and press the format under Download.\n4. Say plainly that the user downloads the file and that you wrote none. A Playground PDF is an\n   image on a page of the sheet's paper size; a vector PDF needs the CLI.\n\n## When something goes wrong\n\n- A missing optional package for PNG or PDF: repeat the command with `--install`.\n- Exit code `2` is a fault in the plan source, not in the export: read the diagnostic.\n  `3` is a wrong flag: run `archlang compile --help`.\n- Text or dimensions too small on the sheet: the scale is too small for the paper. Choose a\n  larger sheet or a larger scale in the plan, or let `archlang finish plan.arch --reissue` choose.\n"},"changes":[{"path":"/skill_md_contents","type":"changed","before":"---\nname: archlang-export\ndescription: Use when the user wants an ArchLang .arch floor plan delivered as files, e.g. \"export this plan as PDF\", \"give me a DXF for CAD\", \"a PNG I can paste into a document\", \"one sheet per floor\", \"print it at 1:50 on A3\". Covers SVG, PNG, PDF and DXF output, paper size and scale, multi-storey plans and batches, through the archlang CLI, or through the ArchLang MCP tools and the Playground where the CLI cannot run. Not for writing or changing the plan itself.\nlicense: MIT\ncompatibility: Needs a shell with Node 18+ and the archlang CLI (npx -y @chanmeng666/archlang@1.60.0, or npm i -g @chanmeng666/archlang@1.60.0 for a global archlang). PNG and PDF need optional packages that the CLI can install with --install. Without them, the ArchLang MCP tools and a browser.\n---\n\n# Export a plan\n\nProduce drawing files from a `.arch` plan.\nIf `archlang` is not on the path, write `npx -y @chanmeng666/archlang@1.60.0` in its place.\nNever run a bare `arch`: on Linux, macOS and Git Bash that name is the coreutils command.\n\nThis skill is a workflow, not a language reference. `archlang compile --help` lists every format and\nflag; `archlang spec` describes the `paper` and `scale` statements.\n\n## Steps\n\n1. **Check the plan compiles.** `archlang compile plan.arch --json` writes nothing and reports `ok`\n   and the diagnostics. Do not export a plan with errors; fix it first.\n2. **Make sure it is a sheet.** A plan with no `paper` statement has no physical size.\n   `archlang finish plan.arch --only sheet --dry-run --json` shows the sheet statements the plan lacks\n   (paper, scale, dimensions, title block, room schedule, legend). `archlang finish plan.arch --only sheet`\n   adds them on the smallest sheet the drawing fits.\n3. **If the user names a paper size or a scale,** edit the plan's `paper` and `scale` statements\n   to those values and compile again. If the drawing does not fit the sheet the plan declares,\n   `archlang finish plan.arch --reissue -o issued.arch` writes a copy in which only `paper` and `scale`\n   are replaced by ones that fit. Tell the user when the sheet they asked for cannot hold the\n   drawing at that scale.\n4. **Export.** Pick the format by what the file is for:\n   - SVG, for the web or further editing: `archlang compile plan.arch -o plan.svg --json`\n   - PDF, for print at true size: `archlang compile plan.arch -f pdf -o plan.pdf --install --json`\n   - PNG, for a document or a chat: `archlang compile plan.arch -f png -o plan.png --install --json`\n     (`-s 2` doubles the raster scale)\n   - DXF, for CAD: `archlang compile plan.arch -f dxf -o plan.dxf --json`\n5. **Multi-storey plans.** A plan written with `level` blocks compiles to one file per storey,\n   named `<stem>.L<level>.<ext>`, and the JSON result lists them in `outputs[]`. To write one\n   storey to one named file, add `--level <n>`.\n6. **Many plans at once.** Create the output directory first; `batch` does not create it. Then\n   `archlang batch a.arch b.arch -f pdf -o out/ --json` renders each input into it and returns one\n   result row per input.\n7. **Confirm what was written.** Read `output` (or `outputs[]` for a multi-storey plan) and\n   `bytes` in the JSON result and list the files for the user. For a PNG you can look at it; for the other formats report the\n   path, the sheet size and the scale.\n\n## Report to the user\n\n- Each file written, with its format.\n- The paper size and scale of the sheet, and whether you or `finish` chose them.\n- Any storey or input that failed, with its diagnostic.\n\n## When the CLI cannot run\n\nSome hosts have no shell, or a shell that cannot reach npm: in ChatGPT's sandbox `npx` only times\nout, and a retry ends in `ENOTCACHED`. Stop after the first such failure and do not substitute\nanother PDF tool. With the ArchLang MCP tools:\n\n1. Set the plan's `paper` and `scale`, then check it with the `validate` tool and render it with\n   the `compile` tool. `W_SCALE_OVERFLOW` means the sheet cannot hold the drawing at that scale:\n   choose a smaller scale or a larger sheet, and say which.\n2. For SVG, `compile` returns the drawing.\n3. For PDF, PNG or DXF, call the `link` tool and give the user its `playground` URL. In the\n   Playground they open Share and press the format under Download.\n4. Say plainly that the user downloads the file and that you wrote none. A Playground PDF is an\n   image on a page of the sheet's paper size; a vector PDF needs the CLI.\n\n## When something goes wrong\n\n- A missing optional package for PNG or PDF: repeat the command with `--install`.\n- Exit code `2` is a fault in the plan source, not in the export: read the diagnostic.\n  `3` is a wrong flag: run `archlang compile --help`.\n- Text or dimensions too small on the sheet: the scale is too small for the paper. Choose a\n  larger sheet or a larger scale in the plan, or let `archlang finish plan.arch --reissue` choose.\n","after":"---\nname: archlang-export\ndescription: Use when the user wants an ArchLang .arch floor plan delivered as files, e.g. \"export this plan as PDF\", \"give me a DXF for CAD\", \"a PNG I can paste into a document\", \"one sheet per floor\", \"print it at 1:50 on A3\". Covers SVG, PNG, PDF and DXF output, paper size and scale, multi-storey plans and batches, through the archlang CLI, or through the ArchLang MCP tools and the Playground where the CLI cannot run. Not for writing or changing the plan itself.\nlicense: MIT\ncompatibility: Needs a shell with Node 18+ and the archlang CLI (npx -y @chanmeng666/archlang@1.61.0, or npm i -g @chanmeng666/archlang@1.61.0 for a global archlang). PNG and PDF need optional packages that the CLI can install with --install. Without them, the ArchLang MCP tools and a browser.\n---\n\n# Export a plan\n\nProduce drawing files from a `.arch` plan.\nIf `archlang` is not on the path, write `npx -y @chanmeng666/archlang@1.61.0` in its place.\nNever run a bare `arch`: on Linux, macOS and Git Bash that name is the coreutils command.\n\nThis skill is a workflow, not a language reference. `archlang compile --help` lists every format and\nflag; `archlang spec` describes the `paper` and `scale` statements.\n\n## Steps\n\n1. **Check the plan compiles.** `archlang compile plan.arch --json` writes nothing and reports `ok`\n   and the diagnostics. Do not export a plan with errors; fix it first.\n2. **Make sure it is a sheet.** A plan with no `paper` statement has no physical size.\n   `archlang finish plan.arch --only sheet --dry-run --json` shows the sheet statements the plan lacks\n   (paper, scale, dimensions, title block, room schedule, legend). `archlang finish plan.arch --only sheet`\n   adds them on the smallest sheet the drawing fits.\n3. **If the user names a paper size or a scale,** edit the plan's `paper` and `scale` statements\n   to those values and compile again. If the drawing does not fit the sheet the plan declares,\n   `archlang finish plan.arch --reissue -o issued.arch` writes a copy in which only `paper` and `scale`\n   are replaced by ones that fit. Tell the user when the sheet they asked for cannot hold the\n   drawing at that scale.\n4. **Export.** Pick the format by what the file is for:\n   - SVG, for the web or further editing: `archlang compile plan.arch -o plan.svg --json`\n   - PDF, for print at true size: `archlang compile plan.arch -f pdf -o plan.pdf --install --json`\n   - PNG, for a document or a chat: `archlang compile plan.arch -f png -o plan.png --install --json`\n     (`-s 2` doubles the raster scale)\n   - DXF, for CAD: `archlang compile plan.arch -f dxf -o plan.dxf --json`\n5. **Multi-storey plans.** A plan written with `level` blocks compiles to one file per storey,\n   named `<stem>.L<level>.<ext>`, and the JSON result lists them in `outputs[]`. To write one\n   storey to one named file, add `--level <n>`.\n6. **Many plans at once.** Create the output directory first; `batch` does not create it. Then\n   `archlang batch a.arch b.arch -f pdf -o out/ --json` renders each input into it and returns one\n   result row per input.\n7. **Confirm what was written.** Read `output` (or `outputs[]` for a multi-storey plan) and\n   `bytes` in the JSON result and list the files for the user. For a PNG you can look at it; for the other formats report the\n   path, the sheet size and the scale.\n\n## Report to the user\n\n- Each file written, with its format.\n- The paper size and scale of the sheet, and whether you or `finish` chose them.\n- Any storey or input that failed, with its diagnostic.\n\n## When the CLI cannot run\n\nSome hosts have no shell, or a shell that cannot reach npm: in ChatGPT's sandbox `npx` only times\nout, and a retry ends in `ENOTCACHED`. Stop after the first such failure and do not substitute\nanother PDF tool. With the ArchLang MCP tools:\n\n1. Set the plan's `paper` and `scale`, then check it with the `validate` tool and render it with\n   the `compile` tool. `W_SCALE_OVERFLOW` means the sheet cannot hold the drawing at that scale:\n   choose a smaller scale or a larger sheet, and say which.\n2. For SVG, `compile` returns the drawing.\n3. For PDF, PNG or DXF, call the `link` tool and give the user its `playground` URL. In the\n   Playground they open Share and press the format under Download.\n4. Say plainly that the user downloads the file and that you wrote none. A Playground PDF is an\n   image on a page of the sheet's paper size; a vector PDF needs the CLI.\n\n## When something goes wrong\n\n- A missing optional package for PNG or PDF: repeat the command with `--install`.\n- Exit code `2` is a fault in the plan source, not in the export: read the diagnostic.\n  `3` is a wrong flag: run `archlang compile --help`.\n- Text or dimensions too small on the sheet: the scale is too small for the paper. Choose a\n  larger sheet or a larger scale in the plan, or let `archlang finish plan.arch --reissue` choose.\n"}],"summary":"Fields changed: 1. /skill_md_contents.","summary_kind":"deterministic","summary_metadata":{}}