[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6HYAM9FSGV6E52AYENDQXYH":3,"skill-same:01M6HYAM9FSGV6E52AYENDQXYH":69},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":18,"publishedAt":36,"linkOnly":37,"markdownContent":38,"markdownBody":39,"frontMatter":40,"refName":41,"commitSha":42,"skillDirectory":43,"forksCount":44,"repositoryHtmlUrl":45,"repositoryHomepageUrl":6,"ownerHtmlUrl":46,"ownerBlogUrl":47,"ownerDescription":6,"updatedAt":48,"install":49,"resources":62},"01M6HYAM9FSGV6E52AYENDQXYH","write-special-chars-ts-check",null,"Workaround for write_file failures caused by special characters (apostrophes, backticks, template literals) using a Python heredoc script, plus a reliable TypeScript type-checking step that filters output to only the newly-written files to avoid being misled by pre-existing errors.","HKUDS\u002FAgentPilot","HKUDS","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F118165258?v=4","01M6HW8VRNZP64G0P4MVJW2KKQ","✨Data Intelligence Lab@HKU✨","01M6HW8VWZVHBRHYH3T330PFWV",7989,"MIT","https:\u002F\u002Fgithub.com\u002FHKUDS\u002FAgentPilot\u002Fblob\u002Fmain\u002Fopenspace\u002Flegacy\u002Fv1\u002Fshowcase\u002Fskills\u002Fwrite-special-chars-ts-check\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35],"write special chars ts check","check","write","files","Existing","type-checking","for","errors","script","output","type","typescript","filters","only","template","file","python","2026-11-10 10:12:30",false,"---\nname: write-special-chars-ts-check\ndescription: Workaround for write_file failures caused by special characters (apostrophes, backticks, template literals) using a Python heredoc script, plus a reliable TypeScript type-checking step that filters output to only the newly-written files to avoid being misled by pre-existing errors.\n---\n\n# Write File Special Characters Workaround (with TypeScript Verification)\n\n## Problem\n\nThe `write_file` tool may fail with `[ERROR] unknown error` when file content\ncontains special characters such as:\n\n- Apostrophes \u002F single quotes (`'`)\n- Backticks (`` ` ``)\n- Template literals (`` `${variable}` ``) common in TypeScript\u002FJavaScript\n- Complex combinations of quotes and escape sequences\n\nThis is especially common when writing TypeScript, JavaScript, shell scripts,\nor any source file with string interpolation syntax.\n\nAdditionally, after writing TypeScript files, you need to verify they are\ntype-correct — but common methods like `npx tsc` or `.\u002Fnode_modules\u002F.bin\u002Ftsc`\ncan fail with `[ERROR] unknown error` due to timeout or symlink resolution\nissues. The reliable method is to call the TypeScript binary directly.\n\n## Solution: Python Heredoc Workaround + Direct TSC Verification\n\n### Phase 1: Write Files via Python Heredoc\n\nWrite a small Python script to `\u002Ftmp\u002F` that uses triple-quoted strings to\nembed the file content, then execute it with `python3`.\n\n#### Step-by-Step\n\n1. **Compose a Python writer script** using triple-quoted strings (`\"\"\"...\"\"\"`).\n2. **Write the Python script itself to `\u002Ftmp\u002F`** — its content is plain enough\n   that `write_file` will succeed (no problematic characters in the wrapper).\n3. **Execute** the script with `run_shell`: `python3 \u002Ftmp\u002Fwrite_\u003Cname>.py`\n\n#### Escaping Rules Inside the Python Script\n\n| Character | How to handle |\n|-----------|--------------|\n| Backslash `\\` | Escape as `\\\\` |\n| Triple double-quote `\"\"\"` | Escape as `\\\"\\\"\\\"` or use `'''` strings instead |\n| Everything else (backticks, `$`, `'`, `{}`) | No escaping needed |\n\n#### Template\n\n```python\n#!\u002Fusr\u002Fbin\u002Fenv python3\ncontent = \"\"\"\n\u003CYOUR FILE CONTENT HERE>\n\"\"\".lstrip(\"\\n\")\n\nwith open(\"\u002Fpath\u002Fto\u002Ftarget\u002Ffile.ts\", \"w\") as f:\n    f.write(content)\n\nprint(\"File written successfully.\")\n```\n\n#### Concrete Example\n\nSuppose you need to write a TypeScript file with template literals and\napostrophes that causes `write_file` to fail:\n\n**Step 1 — Write the Python helper to `\u002Ftmp\u002F`:**\n\nUse `write_file` with path `\u002Ftmp\u002Fwrite_greeting.py` and content:\n\n```python\n#!\u002Fusr\u002Fbin\u002Fenv python3\ncontent = \"\"\"\nexport function greet(name: string): string {\n  const msg = `Hello, ${name}! It's a great day.`;\n  console.log(`Greeting: ${msg}`);\n  return msg;\n}\n\"\"\".lstrip(\"\\n\")\n\nwith open(\"\u002Fapp\u002Fsrc\u002Fgreeting.ts\", \"w\") as f:\n    f.write(content)\n\nprint(\"Written: \u002Fapp\u002Fsrc\u002Fgreeting.ts\")\n```\n\n**Step 2 — Execute the helper:**\n\n```bash\npython3 \u002Ftmp\u002Fwrite_greeting.py\n```\n\n**Step 3 — Verify the file was created:**\n\n```bash\ncat \u002Fapp\u002Fsrc\u002Fgreeting.ts\n```\n\n### Phase 2: TypeScript Type-Checking (Reliable Method)\n\nAfter writing TypeScript files, always verify they introduce zero new type\nerrors. Use the direct binary path — **not** `npx` or `.bin` symlinks, which\nare prone to timeout and path-resolution failures.\n\n#### The Reliable TSC Command\n\n```bash\nnode node_modules\u002Ftypescript\u002Fbin\u002Ftsc --noEmit 2>&1 | grep \"src\u002Fgreeting.ts\"\n```\n\nKey points:\n- `node node_modules\u002Ftypescript\u002Fbin\u002Ftsc` — invokes TypeScript directly via\n  `node`, bypassing npx overhead and symlink resolution entirely.\n- `--noEmit` — type-checks only; does not write output files.\n- `2>&1` — merges stderr into stdout so grep can filter everything.\n- `| grep \"\u003Cfilename>\"` — filters output to only lines mentioning your\n  newly-written file(s), so pre-existing errors in other files do not\n  create false alarms.\n\n#### Why Not npx or .bin Symlinks?\n\n| Method | Risk |\n|--------|------|\n| `npx tsc --noEmit` | Frequently returns `[ERROR] unknown error` (timeout, network, PATH issues) |\n| `.\u002Fnode_modules\u002F.bin\u002Ftsc --noEmit` | Symlink resolution can fail in some environments |\n| `node node_modules\u002Ftypescript\u002Fbin\u002Ftsc --noEmit` | **Reliable** — direct JS execution, no symlinks, no network |\n\n#### Filtering for Multiple New Files\n\nWhen you've written several files, pipe through a more specific grep pattern:\n\n```bash\nnode node_modules\u002Ftypescript\u002Fbin\u002Ftsc --noEmit 2>&1 | grep -E \"src\u002F(greeting|utils|component)\\.ts\"\n```\n\nOr use a directory prefix to catch all new files in one folder:\n\n```bash\nnode node_modules\u002Ftypescript\u002Fbin\u002Ftsc --noEmit 2>&1 | grep \"src\u002Fmyfeature\u002F\"\n```\n\n#### Interpreting the Output\n\n- **No output \u002F empty result** — grep found no errors in your new files. ✅\n  The files are type-correct (pre-existing errors elsewhere are unrelated).\n- **Lines printed** — type errors exist in your new files. ❌ Fix and re-check.\n\nExample clean output (no new errors):\n```\n(no output)\n```\n\nExample with errors:\n```\nsrc\u002Fgreeting.ts(3,14): error TS2345: Argument of type 'number' is not assignable to parameter of type 'string'.\n```\n\n## Full End-to-End Example\n\n### Writing multiple TypeScript files and verifying them\n\n**Step 1 — Write the Python helper to `\u002Ftmp\u002F`:**\n\nUse `write_file` with path `\u002Ftmp\u002Fwrite_settings_files.py`:\n\n```python\n#!\u002Fusr\u002Fbin\u002Fenv python3\nimport os\n\nfiles = {\n    \"\u002Fapp\u002Fsrc\u002Fsettings\u002Fsettings-keys.ts\": \"\"\"\nexport const SETTINGS_KEYS = {\n  theme: 'app.theme',\n  language: 'app.language',\n} as const;\n\nexport type SettingKey = keyof typeof SETTINGS_KEYS;\n\"\"\".lstrip(\"\\n\"),\n\n    \"\u002Fapp\u002Fsrc\u002Fsettings\u002Fsettings-store.ts\": \"\"\"\nimport { SETTINGS_KEYS, SettingKey } from '.\u002Fsettings-keys';\n\nexport class SettingsStore {\n  private data: Record\u003Cstring, string> = {};\n\n  get(key: SettingKey): string | undefined {\n    return this.data[SETTINGS_KEYS[key]];\n  }\n\n  set(key: SettingKey, value: string): void {\n    this.data[SETTINGS_KEYS[key]] = value;\n  }\n}\n\"\"\".lstrip(\"\\n\"),\n}\n\nfor path, content in files.items():\n    os.makedirs(os.path.dirname(path), exist_ok=True)\n    with open(path, \"w\") as f:\n        f.write(content)\n    print(f\"Written: {path}\")\n```\n\n**Step 2 — Execute the helper:**\n\n```bash\npython3 \u002Ftmp\u002Fwrite_settings_files.py\n```\n\n**Step 3 — Verify file contents:**\n\n```bash\ncat \u002Fapp\u002Fsrc\u002Fsettings\u002Fsettings-keys.ts\ncat \u002Fapp\u002Fsrc\u002Fsettings\u002Fsettings-store.ts\n```\n\n**Step 4 — Type-check only the new files:**\n\n```bash\ncd \u002Fapp && node node_modules\u002Ftypescript\u002Fbin\u002Ftsc --noEmit 2>&1 | grep \"src\u002Fsettings\u002F\"\n```\n\nExpected output if all is well: *(empty — no errors in the new files)*\n\n**Step 5 — Optional cleanup:**\n\n```bash\nrm \u002Ftmp\u002Fwrite_settings_files.py\n```\n\n## When to Use This Pattern\n\n- `write_file` returns `[ERROR] unknown error` for a specific file.\n- The file contains TypeScript\u002FJavaScript template literals.\n- The file contains mixed quote styles or shell-like special characters.\n- Any time direct file writing fails and content cannot be easily sanitized.\n- After writing TypeScript files and needing reliable type-checking.\n\n## Multiple Files\n\nFor writing several problematic files in one pass, consolidate them into a\nsingle Python script:\n\n```python\n#!\u002Fusr\u002Fbin\u002Fenv python3\nimport os\n\nfiles = {\n    \"\u002Fapp\u002Fsrc\u002Fcomponent.tsx\": \"\"\"\nimport React from 'react';\n\nconst App = () => (\n  \u003Cdiv className={`container`}>\n    \u003Ch1>It's working!\u003C\u002Fh1>\n  \u003C\u002Fdiv>\n);\n\nexport default App;\n\"\"\".lstrip(\"\\n\"),\n\n    \"\u002Fapp\u002Fsrc\u002Futils.ts\": \"\"\"\nexport const format = (val: number) => `Value: ${val.toFixed(2)}`;\n\"\"\".lstrip(\"\\n\"),\n}\n\nfor path, content in files.items():\n    os.makedirs(os.path.dirname(path), exist_ok=True)\n    with open(path, \"w\") as f:\n        f.write(content)\n    print(f\"Written: {path}\")\n```\n\n## Key Advantages\n\n- **No shell escaping required** — Python triple-quoted strings are literal.\n- **Handles all TypeScript syntax** — template literals, generics, JSX, etc.\n- **Atomic** — the target file is only created if the Python script succeeds.\n- **Debuggable** — the intermediate `.py` file can be inspected if needed.\n- **Reliable type-checking** — direct `node` invocation avoids npx\u002Fsymlink failures.\n- **Targeted verification** — grep filtering isolates errors in new files only,\n  preventing pre-existing project errors from masking or confusing results.\n- **Cleanup (optional):** `rm \u002Ftmp\u002Fwrite_*.py` after all files are written.\n","# Write File Special Characters Workaround (with TypeScript Verification)\n\n## Problem\n\nThe `write_file` tool may fail with `[ERROR] unknown error` when file content\ncontains special characters such as:\n\n- Apostrophes \u002F single quotes (`'`)\n- Backticks (`` ` ``)\n- Template literals (`` `${variable}` ``) common in TypeScript\u002FJavaScript\n- Complex combinations of quotes and escape sequences\n\nThis is especially common when writing TypeScript, JavaScript, shell scripts,\nor any source file with string interpolation syntax.\n\nAdditionally, after writing TypeScript files, you need to verify they are\ntype-correct — but common methods like `npx tsc` or `.\u002Fnode_modules\u002F.bin\u002Ftsc`\ncan fail with `[ERROR] unknown error` due to timeout or symlink resolution\nissues. The reliable method is to call the TypeScript binary directly.\n\n## Solution: Python Heredoc Workaround + Direct TSC Verification\n\n### Phase 1: Write Files via Python Heredoc\n\nWrite a small Python script to `\u002Ftmp\u002F` that uses triple-quoted strings to\nembed the file content, then execute it with `python3`.\n\n#### Step-by-Step\n\n1. **Compose a Python writer script** using triple-quoted strings (`\"\"\"...\"\"\"`).\n2. **Write the Python script itself to `\u002Ftmp\u002F`** — its content is plain enough\n   that `write_file` will succeed (no problematic characters in the wrapper).\n3. **Execute** the script with `run_shell`: `python3 \u002Ftmp\u002Fwrite_\u003Cname>.py`\n\n#### Escaping Rules Inside the Python Script\n\n| Character | How to handle |\n|-----------|--------------|\n| Backslash `\\` | Escape as `\\\\` |\n| Triple double-quote `\"\"\"` | Escape as `\\\"\\\"\\\"` or use `'''` strings instead |\n| Everything else (backticks, `$`, `'`, `{}`) | No escaping needed |\n\n#### Template\n\n```python\n#!\u002Fusr\u002Fbin\u002Fenv python3\ncontent = \"\"\"\n\u003CYOUR FILE CONTENT HERE>\n\"\"\".lstrip(\"\\n\")\n\nwith open(\"\u002Fpath\u002Fto\u002Ftarget\u002Ffile.ts\", \"w\") as f:\n    f.write(content)\n\nprint(\"File written successfully.\")\n```\n\n#### Concrete Example\n\nSuppose you need to write a TypeScript file with template literals and\napostrophes that causes `write_file` to fail:\n\n**Step 1 — Write the Python helper to `\u002Ftmp\u002F`:**\n\nUse `write_file` with path `\u002Ftmp\u002Fwrite_greeting.py` and content:\n\n```python\n#!\u002Fusr\u002Fbin\u002Fenv python3\ncontent = \"\"\"\nexport function greet(name: string): string {\n  const msg = `Hello, ${name}! It's a great day.`;\n  console.log(`Greeting: ${msg}`);\n  return msg;\n}\n\"\"\".lstrip(\"\\n\")\n\nwith open(\"\u002Fapp\u002Fsrc\u002Fgreeting.ts\", \"w\") as f:\n    f.write(content)\n\nprint(\"Written: \u002Fapp\u002Fsrc\u002Fgreeting.ts\")\n```\n\n**Step 2 — Execute the helper:**\n\n```bash\npython3 \u002Ftmp\u002Fwrite_greeting.py\n```\n\n**Step 3 — Verify the file was created:**\n\n```bash\ncat \u002Fapp\u002Fsrc\u002Fgreeting.ts\n```\n\n### Phase 2: TypeScript Type-Checking (Reliable Method)\n\nAfter writing TypeScript files, always verify they introduce zero new type\nerrors. Use the direct binary path — **not** `npx` or `.bin` symlinks, which\nare prone to timeout and path-resolution failures.\n\n#### The Reliable TSC Command\n\n```bash\nnode node_modules\u002Ftypescript\u002Fbin\u002Ftsc --noEmit 2>&1 | grep \"src\u002Fgreeting.ts\"\n```\n\nKey points:\n- `node node_modules\u002Ftypescript\u002Fbin\u002Ftsc` — invokes TypeScript directly via\n  `node`, bypassing npx overhead and symlink resolution entirely.\n- `--noEmit` — type-checks only; does not write output files.\n- `2>&1` — merges stderr into stdout so grep can filter everything.\n- `| grep \"\u003Cfilename>\"` — filters output to only lines mentioning your\n  newly-written file(s), so pre-existing errors in other files do not\n  create false alarms.\n\n#### Why Not npx or .bin Symlinks?\n\n| Method | Risk |\n|--------|------|\n| `npx tsc --noEmit` | Frequently returns `[ERROR] unknown error` (timeout, network, PATH issues) |\n| `.\u002Fnode_modules\u002F.bin\u002Ftsc --noEmit` | Symlink resolution can fail in some environments |\n| `node node_modules\u002Ftypescript\u002Fbin\u002Ftsc --noEmit` | **Reliable** — direct JS execution, no symlinks, no network |\n\n#### Filtering for Multiple New Files\n\nWhen you've written several files, pipe through a more specific grep pattern:\n\n```bash\nnode node_modules\u002Ftypescript\u002Fbin\u002Ftsc --noEmit 2>&1 | grep -E \"src\u002F(greeting|utils|component)\\.ts\"\n```\n\nOr use a directory prefix to catch all new files in one folder:\n\n```bash\nnode node_modules\u002Ftypescript\u002Fbin\u002Ftsc --noEmit 2>&1 | grep \"src\u002Fmyfeature\u002F\"\n```\n\n#### Interpreting the Output\n\n- **No output \u002F empty result** — grep found no errors in your new files. ✅\n  The files are type-correct (pre-existing errors elsewhere are unrelated).\n- **Lines printed** — type errors exist in your new files. ❌ Fix and re-check.\n\nExample clean output (no new errors):\n```\n(no output)\n```\n\nExample with errors:\n```\nsrc\u002Fgreeting.ts(3,14): error TS2345: Argument of type 'number' is not assignable to parameter of type 'string'.\n```\n\n## Full End-to-End Example\n\n### Writing multiple TypeScript files and verifying them\n\n**Step 1 — Write the Python helper to `\u002Ftmp\u002F`:**\n\nUse `write_file` with path `\u002Ftmp\u002Fwrite_settings_files.py`:\n\n```python\n#!\u002Fusr\u002Fbin\u002Fenv python3\nimport os\n\nfiles = {\n    \"\u002Fapp\u002Fsrc\u002Fsettings\u002Fsettings-keys.ts\": \"\"\"\nexport const SETTINGS_KEYS = {\n  theme: 'app.theme',\n  language: 'app.language',\n} as const;\n\nexport type SettingKey = keyof typeof SETTINGS_KEYS;\n\"\"\".lstrip(\"\\n\"),\n\n    \"\u002Fapp\u002Fsrc\u002Fsettings\u002Fsettings-store.ts\": \"\"\"\nimport { SETTINGS_KEYS, SettingKey } from '.\u002Fsettings-keys';\n\nexport class SettingsStore {\n  private data: Record\u003Cstring, string> = {};\n\n  get(key: SettingKey): string | undefined {\n    return this.data[SETTINGS_KEYS[key]];\n  }\n\n  set(key: SettingKey, value: string): void {\n    this.data[SETTINGS_KEYS[key]] = value;\n  }\n}\n\"\"\".lstrip(\"\\n\"),\n}\n\nfor path, content in files.items():\n    os.makedirs(os.path.dirname(path), exist_ok=True)\n    with open(path, \"w\") as f:\n        f.write(content)\n    print(f\"Written: {path}\")\n```\n\n**Step 2 — Execute the helper:**\n\n```bash\npython3 \u002Ftmp\u002Fwrite_settings_files.py\n```\n\n**Step 3 — Verify file contents:**\n\n```bash\ncat \u002Fapp\u002Fsrc\u002Fsettings\u002Fsettings-keys.ts\ncat \u002Fapp\u002Fsrc\u002Fsettings\u002Fsettings-store.ts\n```\n\n**Step 4 — Type-check only the new files:**\n\n```bash\ncd \u002Fapp && node node_modules\u002Ftypescript\u002Fbin\u002Ftsc --noEmit 2>&1 | grep \"src\u002Fsettings\u002F\"\n```\n\nExpected output if all is well: *(empty — no errors in the new files)*\n\n**Step 5 — Optional cleanup:**\n\n```bash\nrm \u002Ftmp\u002Fwrite_settings_files.py\n```\n\n## When to Use This Pattern\n\n- `write_file` returns `[ERROR] unknown error` for a specific file.\n- The file contains TypeScript\u002FJavaScript template literals.\n- The file contains mixed quote styles or shell-like special characters.\n- Any time direct file writing fails and content cannot be easily sanitized.\n- After writing TypeScript files and needing reliable type-checking.\n\n## Multiple Files\n\nFor writing several problematic files in one pass, consolidate them into a\nsingle Python script:\n\n```python\n#!\u002Fusr\u002Fbin\u002Fenv python3\nimport os\n\nfiles = {\n    \"\u002Fapp\u002Fsrc\u002Fcomponent.tsx\": \"\"\"\nimport React from 'react';\n\nconst App = () => (\n  \u003Cdiv className={`container`}>\n    \u003Ch1>It's working!\u003C\u002Fh1>\n  \u003C\u002Fdiv>\n);\n\nexport default App;\n\"\"\".lstrip(\"\\n\"),\n\n    \"\u002Fapp\u002Fsrc\u002Futils.ts\": \"\"\"\nexport const format = (val: number) => `Value: ${val.toFixed(2)}`;\n\"\"\".lstrip(\"\\n\"),\n}\n\nfor path, content in files.items():\n    os.makedirs(os.path.dirname(path), exist_ok=True)\n    with open(path, \"w\") as f:\n        f.write(content)\n    print(f\"Written: {path}\")\n```\n\n## Key Advantages\n\n- **No shell escaping required** — Python triple-quoted strings are literal.\n- **Handles all TypeScript syntax** — template literals, generics, JSX, etc.\n- **Atomic** — the target file is only created if the Python script succeeds.\n- **Debuggable** — the intermediate `.py` file can be inspected if needed.\n- **Reliable type-checking** — direct `node` invocation avoids npx\u002Fsymlink failures.\n- **Targeted verification** — grep filtering isolates errors in new files only,\n  preventing pre-existing project errors from masking or confusing results.\n- **Cleanup (optional):** `rm \u002Ftmp\u002Fwrite_*.py` after all files are written.\n",{"name":5,"description":7},"main","6b84b0689ca0d9e7b1e4061188ff6b60758e0f8a","openspace\u002Flegacy\u002Fv1\u002Fshowcase\u002Fskills\u002Fwrite-special-chars-ts-check",938,"https:\u002F\u002Fgithub.com\u002FHKUDS\u002FAgentPilot","https:\u002F\u002Fgithub.com\u002FHKUDS","https:\u002F\u002Fsites.google.com\u002Fview\u002Fchaoh","2026-11-06 23:04:01",{"source":8,"skillName":5,"commands":50,"prompt":60,"zipAvailable":61},[51,54,57],{"tool":52,"command":53},"npx","npx skills add HKUDS\u002FAgentPilot --skill write-special-chars-ts-check",{"tool":55,"command":56},"bunx","bunx skills add HKUDS\u002FAgentPilot --skill write-special-chars-ts-check",{"tool":58,"command":59},"pnpm","pnpm dlx skills add HKUDS\u002FAgentPilot --skill write-special-chars-ts-check","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FHKUDS\u002FAgentPilot\u002Fblob\u002Fmain\u002Fopenspace\u002Flegacy\u002Fv1\u002Fshowcase\u002Fskills\u002Fwrite-special-chars-ts-check\u002FSKILL.md",true,[63],{"path":64,"resourceType":65,"resourceTypeDesc":66,"sizeBytes":67,"sourceHtmlUrl":68},".skill_id","OTHER","其他",58,"https:\u002F\u002Fgithub.com\u002FHKUDS\u002FAgentPilot\u002Fblob\u002Fmain\u002Fopenspace\u002Flegacy\u002Fv1\u002Fshowcase\u002Fskills\u002Fwrite-special-chars-ts-check\u002F.skill_id",[70,90,109,134,157,173],{"skillNo":71,"name":72,"nameZh":6,"description":73,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":74,"categories":75,"keywords":76,"publishedAt":36},"01M6HYB297NDABRERJRVG0K8R0","agentpilot","Set up AgentPilot and use its single entry to prepare missing inputs and run configured RSI experiments. Use when the user requests AgentPilot installation or work with AgentPilot.","https:\u002F\u002Fgithub.com\u002FHKUDS\u002FAgentPilot\u002Fblob\u002Fmain\u002Fplugins\u002Fagentpilot\u002Fskills\u002Fagentpilot\u002FSKILL.md",[],[72,77,78,79,80,81,82,83,84,85,86,87,88,89],"SET","requests","with","missing","installation","rsi","up","use","user","work","run","prepare","experiments",{"skillNo":91,"name":92,"nameZh":6,"description":93,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":94,"categories":95,"keywords":96,"publishedAt":36},"01M6HYAYWXTTE1J7DJM0MFNQ4H","remember","Review auto-memory entries and propose promotions to OPENSPACE.md, OPENSPACE.local.md, or retained auto-memory topics; detect duplicates, stale facts, conflicts, and ambiguous entries before making changes.","https:\u002F\u002Fgithub.com\u002FHKUDS\u002FAgentPilot\u002Fblob\u002Fmain\u002Fopenspace\u002Fopenspace\u002Fskills\u002Fremember\u002FSKILL.md",[],[92,97,98,99,100,101,102,103,104,105,106,107,108],"auto","duplicates","memory","stale","review","conflicts","openspace","changes","facts","detect","entries","local",{"skillNo":110,"name":111,"nameZh":6,"description":112,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":113,"categories":114,"keywords":120,"publishedAt":36},"01M6HYAVMPM4SBDV60R2B5HPV8","skill-discovery","Search reusable OpenSpace skills locally, and browse cloud packages step by step when a cloud skill may help. Reusing proven skills saves tokens, improves reliability, and extends your capabilities beyond built-in tools.","https:\u002F\u002Fgithub.com\u002FHKUDS\u002FAgentPilot\u002Fblob\u002Fmain\u002Fopenspace\u002Fopenspace\u002Fhost_skills\u002Fskill-discovery\u002FSKILL.md",[115],{"categoryNo":116,"categoryName":117,"taxonomyType":118,"taxonomyTypeDesc":119},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[121,122,123,103,124,125,126,127,128,129,130,131,132,133],"skill discovery","discovery","search","step by step","tokens","reusable","reliability","browse","Tools","cloud","help","packages","capabilities",{"skillNo":135,"name":136,"nameZh":6,"description":137,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":138,"categories":139,"keywords":141,"publishedAt":36},"01M6HYAR811B3RB0M50RBEDGN6","delegate-task","Delegate tasks to OpenSpace — a full-stack autonomous worker for coding, DevOps, web research, and desktop automation, backed by an extensive MCP tool and skill library. Skills auto-improve through use, reducing token consumption over time. A cloud community lets agents share and collectively evolve reusable skills.","https:\u002F\u002Fgithub.com\u002FHKUDS\u002FAgentPilot\u002Fblob\u002Fmain\u002Fopenspace\u002Fopenspace\u002Fhost_skills\u002Fdelegate-task\u002FSKILL.md",[140],{"categoryNo":116,"categoryName":117,"taxonomyType":118,"taxonomyTypeDesc":119},[142,143,144,25,145,97,103,146,147,148,149,126,84,150,151,152,153,154,155,156],"delegate","task","delegate task","MCP","desktop automation","worker","time","community","autonomous","tool","stack","improve","share","tasks","automation",{"skillNo":158,"name":159,"nameZh":6,"description":160,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":161,"categories":162,"keywords":163,"publishedAt":36},"01M6HYAH05HGV7SVWSVR8PJRQD","write-special-chars-readback","Workaround for write_file failures caused by special characters (apostrophes, backticks, template literals) using a Python heredoc script, with mandatory post-write verification via read_file and cleanup of \u002Ftmp helper scripts.","https:\u002F\u002Fgithub.com\u002FHKUDS\u002FAgentPilot\u002Fblob\u002Fmain\u002Fopenspace\u002Flegacy\u002Fv1\u002Fshowcase\u002Fskills\u002Fwrite-special-chars-readback\u002FSKILL.md",[],[21,164,165,34,25,27,79,166,167,168,169,170,33,171,172,35],"readback","write special chars readback","helper","post","via","scripts","read","verification","cleanup",{"skillNo":174,"name":175,"nameZh":6,"description":176,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":177,"categories":178,"keywords":179,"publishedAt":36},"01M6HYAE5C4BBYW27ZEBX4YR7A","write-special-chars-heredoc","Workaround for write_file failures caused by special characters (apostrophes, backticks, template literals) by using a Python heredoc script executed via shell.","https:\u002F\u002Fgithub.com\u002FHKUDS\u002FAgentPilot\u002Fblob\u002Fmain\u002Fopenspace\u002Flegacy\u002Fv1\u002Fshowcase\u002Fskills\u002Fwrite-special-chars-heredoc\u002FSKILL.md",[],[180,21,25,27,168,33,181,34,35],"write special chars heredoc","shell"]