[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M73DA47CD3FXC1F1Z6VG8CG0":3,"skill-same:01M73DA47CD3FXC1F1Z6VG8CG0":59},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":17,"publishedAt":18,"linkOnly":19,"markdownContent":20,"markdownBody":21,"frontMatter":22,"refName":37,"commitSha":38,"skillDirectory":39,"forksCount":40,"repositoryHtmlUrl":41,"repositoryHomepageUrl":6,"ownerHtmlUrl":42,"ownerBlogUrl":6,"ownerDescription":43,"updatedAt":44,"install":45,"resources":58},"01M73DA47CD3FXC1F1Z6VG8CG0","generate-room-elevation",null,"Generate 4-direction unfolded wall elevations (North -> East -> South -> West) for rooms in ZWCAD. Use when: drawing room-by-room elevations, generating elevations for all rooms in a floor plan, or generating elevations for selected rooms.","5throck\u002Fai-workspace-standards","5throck","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F10958964?v=4","01M73BFEH0V0VS483TW4JD49JW","01M73BFEJ5VQZJHJSFTVPAZGDM",25,"AGPL-3.0","https:\u002F\u002Fgithub.com\u002F5throck\u002Fai-workspace-standards\u002Fblob\u002Fmain\u002Ftemplates\u002Fco-architect\u002Fskills\u002Fgenerate-room-elevation\u002FSKILL.md",[],[],"2026-11-11 15:11:14",false,"---\nname: generate-room-elevation\nstatus: active\nlast_reviewed: \"2026-09-26\"\nscope: co-architect\ndescription: >\n  Generate 4-direction unfolded wall elevations (North -> East -> South -> West) for rooms in ZWCAD.\n  Use when: drawing room-by-room elevations, generating elevations for all rooms in a floor plan, or generating elevations for selected rooms.\nowner: pm\nversion: 1.2.0\nmetadata: \n  type: process\n  triggers:\n    - generate room elevation\n    - draw elevations for room\n    - room elevation pipeline\n    - generate all elevations\nprerequisites: none\n---\n\n# Generate Room Elevation Skill\n\nThis skill outlines the process for generating 4-direction unfolded elevations (North → East → South → West) for one or more rooms based on a floor plan in ZWCAD.\n\n---\n\n## Context\n\nTurns an accepted floor plan into 4-direction unfolded wall elevations (North → East → South → West) in ZWCAD, room by room or for every room at once. Workflow A runs the automated pipeline from derived metadata; Workflow B drives a single room through custom scripting — the split is a role decision, not a preference (see `## Workflow A vs Workflow B`).\n\n## Execution Steps\n\n1. Preview the plan as SVG from derived metadata (required first step — see `## Step 0`).\n2. Derive elevation metadata from the reviewed ground truth: finished surface first, then reconcile (`## Step 0b`).\n3. Run Workflow A (selective\u002Fall rooms, automated pipeline, recommended) or Workflow B (single room, custom scripting).\n\n## Output Format\n\nFour unfolded elevation drawings per room placed on the designated ZWCAD layers, one set per requested room, matching the reviewed `rooms.json` metadata consumed from `cad-svg-preview`.\n\n## Related Skills\n\n- `cad-svg-preview` — produces the preview and elevation metadata this skill draws from.\n- `cad-space-recognition` — produces the accepted room ground truth upstream.\n- `zwcad-ai-drawing` — shares the MCP session this skill draws in.\n\n---\n\n## When to Use This Skill\n\nUse this skill when the user requests to generate elevations for rooms, either:\n- **Single Room Custom Run**: A custom layout or dimensions that require direct coordinates drawing via a script.\n- **Selective\u002FAll Rooms Automated Run**: Running the automated pipeline to scan entities (doors\u002Fsleeves) from ZWCAD, map them to room bboxes in metadata, and regenerate elevations.\n\n---\n\n## Workflow A vs Workflow B — Role, Not Just Mechanism\n\n| | Workflow A (`rematch_openings.py`) | Workflow B (`draw_room1_elevations.py`) |\n|---|---|---|\n| Source of truth | CAD scan + metadata (auto-detected) | Human-verified reference values (ground truth) |\n| Role | Production pipeline — the tool that actually generates elevations day-to-day | Two distinct roles — see below |\n\nBecause Workflow B's opening offsets are typed in by a human who looked at the\ndrawing (not auto-detected), it doubles as the **accuracy baseline** for\nWorkflow A: when `rematch_openings.py`'s CAD-scan matching produces a\nsurprising result, `draw_room1_elevations.py`'s hardcoded values — and its\nper-wall docstring conventions (which corner is \"left\" on each face) — are\nwhat to check it against. Keep this in mind before \"simplifying\" Workflow B\nto match Workflow A's automation; its manual, explicit nature is the point.\n\n**Workflow B's two roles** (see `docs\u002Fadr\u002FADR-016-face-elevation-architecture.md`\nRoadmap Addendum for the full rationale):\n1. **Golden Fixture Generator** — its `WallDef`\u002F`Opening` data is a human-verified input\n   fixture, independent of how it's drawn.\n2. **Renderer Oracle** — its *drawn output* is currently treated as \"the correct answer\"\n   to compare Workflow A's ZWCAD output against. This role is planned to migrate from\n   Workflow B's hand-written draw functions onto a `REFERENCE` `RenderStyle` preset once\n   both workflows render through the shared `LayoutScene → RendererFactory` path (ADR-bb\u002Fcc\n   target architecture, not yet implemented) — at that point \"the oracle\" is a style\n   flag on the shared renderer, not a second hand-maintained implementation.\n\n---\n\n## Step 0 — Preview as SVG, from derived metadata (required)\n\nBefore drawing in ZWCAD:\n\n1. Regenerate the metadata from the user-reviewed ground truth: `uv run python scripts\u002Fco-architect\u002Fcad\u002Fpipeline\u002Fderive_room_metadata.py \"\u003Cdrawing>\"`. The old hand-built `rooms.json`\u002F`walls.json` for the apartment reference plan were wrong (rooms misplaced, C.H 2,800 vs tagged 2,300); these files are now derived and must not be hand-edited.\n2. Show the elevations as SVG: `render_room_elevation_svg.py --rooms memory\u002Fdrawings\u002F\u003Cdrawing>.rooms.json \u003Cout_dir>` renders every room, including non-rectangular ones, and `all-rooms.svg`. See skill `cad-svg-preview`.\n3. Draw in ZWCAD only after the user confirms the SVG.\n\n`rematch_openings.py` takes C.H from `rooms.json` first, then the existing `walls.json`, then `architectural-standards.json`. The hard-coded 2,800 default is gone. Non-rectangular rooms are skipped by this 4-face pipeline with an `[INFO]` line.\n\n## Step 0b — Elevations are drawn from the plan: finished surface, then reconcile\n\nElevation sheets are drawn **from the plan sheet** (reading rules R27, R28). Example: the public-hall drawing in `tests\u002F`, where sheet 1 is the plan and sheets 2–3 are elevations A–F.\n\n1. **Which walls:** the key plan's marker pair (`A`\u002F`A′` …) and its coloured section line name the plan space and walls of each elevation. Record them in the ground truth under `elevations` (`space`, `marker_y`) and `sheets` (plan → elevation sheets).\n2. **Which surface:** elevations are dimensioned to the **finished wall surface**, the structural face minus the finish. Put plan polygons on the drawing's own wall centerlines (for example the `A-CEN` layer) and set `_meta.wall_finish_mm`. `room_metadata.unfolded_faces(..., finish=)` then produces the sheet dimensions (for example, the lobby is 2,350 at the concrete face and 2,310 on the sheet).\n3. **Reconcile:** `derive_room_metadata.py` runs `elevation_scoring.score_drawing` when the drawing has elevation sheets and writes `{drawing}.elevation-score.json`. The targets are unfolded length within 100 mm and every sheet door matched (position within 260 mm, width). Treat every `review` line as a question. Record a real plan-vs-sheet drafting difference in the ground truth instead of forcing a match.\n\n## Workflow A — Selective\u002FAll Rooms Automated Pipeline (Recommended)\n\nUse this workflow to automatically extract openings (doors\u002Fwindows\u002Fsleeves) from the active ZWCAD drawing, reconcile them with floor plan metadata, and regenerate elevations.\n\n> [!NOTE]\n> **`--render-mode simple` is a schematic mode by design, not an incomplete `detailed`.**\n> It intentionally omits brick\u002Fconcrete hatch and door\u002Fwindow detail (plain rectangle +\n> `WxH` label only) — see `docs\u002Fadr\u002FADR-016-face-elevation-architecture.md` ADR-aa. Don't\n> \"complete\" it by copying `detailed` geometry into it; if a use case needs that, use\n> `detailed` instead.\n>\n> **Workflow B does not support `--render-mode` at all** — it always draws one fixed,\n> hand-authored style. See ADR-aa's \"Known parity gap\" note and the \"Roadmap Addendum:\n> Simple\u002FDetailed Rendering Parity & Workflow A\u002FB Convergence\" section in the same doc for\n> the planned convergence (Workflow B onto the shared `ZWCADRendererFactory`) and the\n> current door-symbol mismatch between Workflow B's true arc and `detailed\u002Fdoor.py`'s\n> straight-line approximation.\n\n### Step A1: Verify Metadata Availability\nBefore running, ensure the drawing metadata is extracted and available under `memory\u002Fdrawings\u002F` (usually extracted from `memory\u002Fdrawings.zip` if compressed):\n- `{drawing_name}.rooms.json`: Contains the user-verified room bboxes and nominal openings.\n- `{drawing_name}.walls.json`: Contains wall dimensions and opening metadata.\n- `{drawing_name}.layers.json`: Contains layer classifications (e.g. wall layers, door layers).\n\n> [!IMPORTANT]\n> **Strict Metadata Isolation**: The elevation pipeline enforces Fail-Fast validation. Metadata is treated as belonging to exactly one drawing. Reusing metadata generated for another DWG is unsupported and results in immediate validation failure.\n\n### Step A2: Execute Pipeline\n\n#### Option 1: Generate for ALL Rooms\nRun the following command to process and generate elevations for all rooms:\n```powershell\n.venv\\Scripts\\python.exe scripts\u002Fco-architect\u002Fcad\u002Fpipeline\u002Frematch_openings.py\n```\n\n#### Option 2: Generate for SELECTIVE Rooms\nTo generate elevations only for specific rooms, pass their comma-separated names using the `--rooms` flag:\n```powershell\n.venv\\Scripts\\python.exe scripts\u002Fco-architect\u002Fcad\u002Fpipeline\u002Frematch_openings.py --rooms \"ROOM #1,ROOM #2\"\n```\n\n### Step A3: Verification\n1. Run the `verify_drawings.py` verification script (standalone scratch checker) to check the generated entities.\n2. In ZWCAD, confirm that:\n   - Old elevations on elevation layers are deleted and replaced.\n   - The generated elevations are rendered to the right of the floor plan (standard starting position `X = 50000` with `5000mm` spacing).\n\n---\n\n## Workflow B — Single Room Custom Scripting\n\nUse this workflow when a room requires ad-hoc layout changes or does not match the automated database.\n\n### Step B1: Extract Room Dimensions\n1. Locate the room text label inside the active drawing to determine its center coordinates.\n2. Verify the East-West (EW) and North-South (NS) span sizes from the dimension lines or polyline vertices.\n3. Identify opening types (door, window) and their exact offset and width from the wall corner.\n\n### Step B2: Configure the Scaffold Script\nCreate or copy a script (e.g., [draw_room1_elevations.py](..\u002F..\u002Fscripts\u002Fco-architect\u002Fcad\u002Fdrawing\u002Fdraw_room1_elevations.py)) and specify:\n- Room width (`room_ew`), height (`room_ns`), and ceiling height (`ceiling`).\n- Wall openings formatted as `(type, offset, width, sill, height)`.\n\n### Step B3: Execute and Save\n1. Execute the custom script:\n   ```powershell\n   .venv\\Scripts\\python.exe scripts\u002Fdraw_\u003Croom>_elevations.py\n   ```\n2. Save the active document in ZWCAD:\n   ```powershell\n   .venv\\Scripts\\python.exe -c \"import win32com.client; win32com.client.GetActiveObject('ZWCAD.Application').ActiveDocument.Save()\"\n   ```\n\n## Related Skills\n\n\u003C!-- Link related skills here -->\n","# Generate Room Elevation Skill\n\nThis skill outlines the process for generating 4-direction unfolded elevations (North → East → South → West) for one or more rooms based on a floor plan in ZWCAD.\n\n---\n\n## Context\n\nTurns an accepted floor plan into 4-direction unfolded wall elevations (North → East → South → West) in ZWCAD, room by room or for every room at once. Workflow A runs the automated pipeline from derived metadata; Workflow B drives a single room through custom scripting — the split is a role decision, not a preference (see `## Workflow A vs Workflow B`).\n\n## Execution Steps\n\n1. Preview the plan as SVG from derived metadata (required first step — see `## Step 0`).\n2. Derive elevation metadata from the reviewed ground truth: finished surface first, then reconcile (`## Step 0b`).\n3. Run Workflow A (selective\u002Fall rooms, automated pipeline, recommended) or Workflow B (single room, custom scripting).\n\n## Output Format\n\nFour unfolded elevation drawings per room placed on the designated ZWCAD layers, one set per requested room, matching the reviewed `rooms.json` metadata consumed from `cad-svg-preview`.\n\n## Related Skills\n\n- `cad-svg-preview` — produces the preview and elevation metadata this skill draws from.\n- `cad-space-recognition` — produces the accepted room ground truth upstream.\n- `zwcad-ai-drawing` — shares the MCP session this skill draws in.\n\n---\n\n## When to Use This Skill\n\nUse this skill when the user requests to generate elevations for rooms, either:\n- **Single Room Custom Run**: A custom layout or dimensions that require direct coordinates drawing via a script.\n- **Selective\u002FAll Rooms Automated Run**: Running the automated pipeline to scan entities (doors\u002Fsleeves) from ZWCAD, map them to room bboxes in metadata, and regenerate elevations.\n\n---\n\n## Workflow A vs Workflow B — Role, Not Just Mechanism\n\n| | Workflow A (`rematch_openings.py`) | Workflow B (`draw_room1_elevations.py`) |\n|---|---|---|\n| Source of truth | CAD scan + metadata (auto-detected) | Human-verified reference values (ground truth) |\n| Role | Production pipeline — the tool that actually generates elevations day-to-day | Two distinct roles — see below |\n\nBecause Workflow B's opening offsets are typed in by a human who looked at the\ndrawing (not auto-detected), it doubles as the **accuracy baseline** for\nWorkflow A: when `rematch_openings.py`'s CAD-scan matching produces a\nsurprising result, `draw_room1_elevations.py`'s hardcoded values — and its\nper-wall docstring conventions (which corner is \"left\" on each face) — are\nwhat to check it against. Keep this in mind before \"simplifying\" Workflow B\nto match Workflow A's automation; its manual, explicit nature is the point.\n\n**Workflow B's two roles** (see `docs\u002Fadr\u002FADR-016-face-elevation-architecture.md`\nRoadmap Addendum for the full rationale):\n1. **Golden Fixture Generator** — its `WallDef`\u002F`Opening` data is a human-verified input\n   fixture, independent of how it's drawn.\n2. **Renderer Oracle** — its *drawn output* is currently treated as \"the correct answer\"\n   to compare Workflow A's ZWCAD output against. This role is planned to migrate from\n   Workflow B's hand-written draw functions onto a `REFERENCE` `RenderStyle` preset once\n   both workflows render through the shared `LayoutScene → RendererFactory` path (ADR-bb\u002Fcc\n   target architecture, not yet implemented) — at that point \"the oracle\" is a style\n   flag on the shared renderer, not a second hand-maintained implementation.\n\n---\n\n## Step 0 — Preview as SVG, from derived metadata (required)\n\nBefore drawing in ZWCAD:\n\n1. Regenerate the metadata from the user-reviewed ground truth: `uv run python scripts\u002Fco-architect\u002Fcad\u002Fpipeline\u002Fderive_room_metadata.py \"\u003Cdrawing>\"`. The old hand-built `rooms.json`\u002F`walls.json` for the apartment reference plan were wrong (rooms misplaced, C.H 2,800 vs tagged 2,300); these files are now derived and must not be hand-edited.\n2. Show the elevations as SVG: `render_room_elevation_svg.py --rooms memory\u002Fdrawings\u002F\u003Cdrawing>.rooms.json \u003Cout_dir>` renders every room, including non-rectangular ones, and `all-rooms.svg`. See skill `cad-svg-preview`.\n3. Draw in ZWCAD only after the user confirms the SVG.\n\n`rematch_openings.py` takes C.H from `rooms.json` first, then the existing `walls.json`, then `architectural-standards.json`. The hard-coded 2,800 default is gone. Non-rectangular rooms are skipped by this 4-face pipeline with an `[INFO]` line.\n\n## Step 0b — Elevations are drawn from the plan: finished surface, then reconcile\n\nElevation sheets are drawn **from the plan sheet** (reading rules R27, R28). Example: the public-hall drawing in `tests\u002F`, where sheet 1 is the plan and sheets 2–3 are elevations A–F.\n\n1. **Which walls:** the key plan's marker pair (`A`\u002F`A′` …) and its coloured section line name the plan space and walls of each elevation. Record them in the ground truth under `elevations` (`space`, `marker_y`) and `sheets` (plan → elevation sheets).\n2. **Which surface:** elevations are dimensioned to the **finished wall surface**, the structural face minus the finish. Put plan polygons on the drawing's own wall centerlines (for example the `A-CEN` layer) and set `_meta.wall_finish_mm`. `room_metadata.unfolded_faces(..., finish=)` then produces the sheet dimensions (for example, the lobby is 2,350 at the concrete face and 2,310 on the sheet).\n3. **Reconcile:** `derive_room_metadata.py` runs `elevation_scoring.score_drawing` when the drawing has elevation sheets and writes `{drawing}.elevation-score.json`. The targets are unfolded length within 100 mm and every sheet door matched (position within 260 mm, width). Treat every `review` line as a question. Record a real plan-vs-sheet drafting difference in the ground truth instead of forcing a match.\n\n## Workflow A — Selective\u002FAll Rooms Automated Pipeline (Recommended)\n\nUse this workflow to automatically extract openings (doors\u002Fwindows\u002Fsleeves) from the active ZWCAD drawing, reconcile them with floor plan metadata, and regenerate elevations.\n\n> [!NOTE]\n> **`--render-mode simple` is a schematic mode by design, not an incomplete `detailed`.**\n> It intentionally omits brick\u002Fconcrete hatch and door\u002Fwindow detail (plain rectangle +\n> `WxH` label only) — see `docs\u002Fadr\u002FADR-016-face-elevation-architecture.md` ADR-aa. Don't\n> \"complete\" it by copying `detailed` geometry into it; if a use case needs that, use\n> `detailed` instead.\n>\n> **Workflow B does not support `--render-mode` at all** — it always draws one fixed,\n> hand-authored style. See ADR-aa's \"Known parity gap\" note and the \"Roadmap Addendum:\n> Simple\u002FDetailed Rendering Parity & Workflow A\u002FB Convergence\" section in the same doc for\n> the planned convergence (Workflow B onto the shared `ZWCADRendererFactory`) and the\n> current door-symbol mismatch between Workflow B's true arc and `detailed\u002Fdoor.py`'s\n> straight-line approximation.\n\n### Step A1: Verify Metadata Availability\nBefore running, ensure the drawing metadata is extracted and available under `memory\u002Fdrawings\u002F` (usually extracted from `memory\u002Fdrawings.zip` if compressed):\n- `{drawing_name}.rooms.json`: Contains the user-verified room bboxes and nominal openings.\n- `{drawing_name}.walls.json`: Contains wall dimensions and opening metadata.\n- `{drawing_name}.layers.json`: Contains layer classifications (e.g. wall layers, door layers).\n\n> [!IMPORTANT]\n> **Strict Metadata Isolation**: The elevation pipeline enforces Fail-Fast validation. Metadata is treated as belonging to exactly one drawing. Reusing metadata generated for another DWG is unsupported and results in immediate validation failure.\n\n### Step A2: Execute Pipeline\n\n#### Option 1: Generate for ALL Rooms\nRun the following command to process and generate elevations for all rooms:\n```powershell\n.venv\\Scripts\\python.exe scripts\u002Fco-architect\u002Fcad\u002Fpipeline\u002Frematch_openings.py\n```\n\n#### Option 2: Generate for SELECTIVE Rooms\nTo generate elevations only for specific rooms, pass their comma-separated names using the `--rooms` flag:\n```powershell\n.venv\\Scripts\\python.exe scripts\u002Fco-architect\u002Fcad\u002Fpipeline\u002Frematch_openings.py --rooms \"ROOM #1,ROOM #2\"\n```\n\n### Step A3: Verification\n1. Run the `verify_drawings.py` verification script (standalone scratch checker) to check the generated entities.\n2. In ZWCAD, confirm that:\n   - Old elevations on elevation layers are deleted and replaced.\n   - The generated elevations are rendered to the right of the floor plan (standard starting position `X = 50000` with `5000mm` spacing).\n\n---\n\n## Workflow B — Single Room Custom Scripting\n\nUse this workflow when a room requires ad-hoc layout changes or does not match the automated database.\n\n### Step B1: Extract Room Dimensions\n1. Locate the room text label inside the active drawing to determine its center coordinates.\n2. Verify the East-West (EW) and North-South (NS) span sizes from the dimension lines or polyline vertices.\n3. Identify opening types (door, window) and their exact offset and width from the wall corner.\n\n### Step B2: Configure the Scaffold Script\nCreate or copy a script (e.g., [draw_room1_elevations.py](..\u002F..\u002Fscripts\u002Fco-architect\u002Fcad\u002Fdrawing\u002Fdraw_room1_elevations.py)) and specify:\n- Room width (`room_ew`), height (`room_ns`), and ceiling height (`ceiling`).\n- Wall openings formatted as `(type, offset, width, sill, height)`.\n\n### Step B3: Execute and Save\n1. Execute the custom script:\n   ```powershell\n   .venv\\Scripts\\python.exe scripts\u002Fdraw_\u003Croom>_elevations.py\n   ```\n2. Save the active document in ZWCAD:\n   ```powershell\n   .venv\\Scripts\\python.exe -c \"import win32com.client; win32com.client.GetActiveObject('ZWCAD.Application').ActiveDocument.Save()\"\n   ```\n\n## Related Skills\n\n\u003C!-- Link related skills here -->\n",{"name":5,"owner":23,"scope":24,"status":25,"version":26,"metadata":27,"description":34,"last_reviewed":35,"prerequisites":36},"pm","co-architect","active","1.2.0",{"type":28,"triggers":29},"process",[30,31,32,33],"generate room elevation","draw elevations for room","room elevation pipeline","generate all elevations","Generate 4-direction unfolded wall elevations (North -> East -> South -> West) for rooms in ZWCAD. Use when: drawing room-by-room elevations, generating elevations for all rooms in a floor plan, or generating elevations for selected rooms.\n","2026-09-26","none","main","1162ccc568cf90c01b3886d6143cbfd851a37883","templates\u002Fco-architect\u002Fskills\u002Fgenerate-room-elevation",9,"https:\u002F\u002Fgithub.com\u002F5throck\u002Fai-workspace-standards","https:\u002F\u002Fgithub.com\u002F5throck","Experienced in digital transformation, enterprise IT, startup acceleration, and business strategy. Focused on building practical systems that connect technolo","2026-11-14 21:22:34",{"source":8,"skillName":5,"commands":46,"prompt":56,"zipAvailable":57},[47,50,53],{"tool":48,"command":49},"npx","npx skills add 5throck\u002Fai-workspace-standards --skill generate-room-elevation",{"tool":51,"command":52},"bunx","bunx skills add 5throck\u002Fai-workspace-standards --skill generate-room-elevation",{"tool":54,"command":55},"pnpm","pnpm dlx skills add 5throck\u002Fai-workspace-standards --skill generate-room-elevation","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002F5throck\u002Fai-workspace-standards\u002Fblob\u002Fmain\u002Ftemplates\u002Fco-architect\u002Fskills\u002Fgenerate-room-elevation\u002FSKILL.md",true,[],[60,68,73,78,83,88],{"skillNo":61,"name":62,"nameZh":6,"description":63,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":64,"categories":65,"keywords":66,"publishedAt":67},"01M7BBJDYHJMGTJYSC37JVWY8S","i18n-layout","Text layout and encoding guidance: character encoding (UTF-8, legacy Korean code pages, BOM hazards), line endings, RTL\u002Fbidi handling, and script-specific font selection (Hangul focus). Use when: encoding is corrupted or mojibake appears, an RTL locale must render correctly, fonts must be chosen for a script, or CRLF\u002FBOM issues surface.","https:\u002F\u002Fgithub.com\u002F5throck\u002Fai-workspace-standards\u002Fblob\u002Fmain\u002Ftemplates\u002Fco-work\u002Fskills\u002Fi18n-layout\u002FSKILL.md",[],[],"2026-11-15 14:19:17",{"skillNo":69,"name":62,"nameZh":6,"description":63,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":70,"categories":71,"keywords":72,"publishedAt":67},"01M7BBJ9XHAAS1AVGKZZ841VBZ","https:\u002F\u002Fgithub.com\u002F5throck\u002Fai-workspace-standards\u002Fblob\u002Fmain\u002Ftemplates\u002Fco-work\u002F.hermes\u002Fskills\u002Fi18n-layout\u002FSKILL.md",[],[],{"skillNo":74,"name":62,"nameZh":6,"description":63,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":75,"categories":76,"keywords":77,"publishedAt":67},"01M7BBJ5C3X8TKFKG5R9P9P49W","https:\u002F\u002Fgithub.com\u002F5throck\u002Fai-workspace-standards\u002Fblob\u002Fmain\u002Ftemplates\u002Fco-work\u002F.gemini\u002Fskills\u002Fi18n-layout\u002FSKILL.md",[],[],{"skillNo":79,"name":62,"nameZh":6,"description":63,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":80,"categories":81,"keywords":82,"publishedAt":67},"01M7BBJ1B52X0QMJ2QVBMPJB37","https:\u002F\u002Fgithub.com\u002F5throck\u002Fai-workspace-standards\u002Fblob\u002Fmain\u002Ftemplates\u002Fco-work\u002F.codex\u002Fskills\u002Fi18n-layout\u002FSKILL.md",[],[],{"skillNo":84,"name":62,"nameZh":6,"description":63,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":85,"categories":86,"keywords":87,"publishedAt":67},"01M7BBHX91BW2Q2R276MRX5AW3","https:\u002F\u002Fgithub.com\u002F5throck\u002Fai-workspace-standards\u002Fblob\u002Fmain\u002Ftemplates\u002Fco-work\u002F.claude\u002Fskills\u002Fi18n-layout\u002FSKILL.md",[],[],{"skillNo":89,"name":62,"nameZh":6,"description":63,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":90,"categories":91,"keywords":92,"publishedAt":67},"01M7BBHQWGXPSFRWN1PRC2NMMV","https:\u002F\u002Fgithub.com\u002F5throck\u002Fai-workspace-standards\u002Fblob\u002Fmain\u002Ftemplates\u002Fco-work\u002F.agents\u002Fskills\u002Fi18n-layout\u002FSKILL.md",[],[]]