[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6K5TGDERXT82MS7SB3ZGA3V":3,"skill-same:01M6K5TGDERXT82MS7SB3ZGA3V":125},{"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":33,"linkOnly":34,"markdownContent":35,"markdownBody":36,"frontMatter":37,"refName":40,"commitSha":41,"skillDirectory":42,"forksCount":43,"repositoryHtmlUrl":44,"repositoryHomepageUrl":45,"ownerHtmlUrl":46,"ownerBlogUrl":47,"ownerDescription":48,"updatedAt":49,"install":50,"resources":62},"01M6K5TGDERXT82MS7SB3ZGA3V","task-list",null,"TaskCreate \u002F TaskUpdate \u002F render the current TaskList in response to `\u002Ftask-list` (with or without flags). The skill body executes immediately on the syntax — no permission-seeking, no echoing the list back as plain text.","laurac8r\u002Fclaude-damn","laurac8r","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F23003243?v=4","01M6K5HCAJJR4Q5BCBRRZF8E5D","Laura Kaminskiy","01M6K5HCEQRFFJFK32A0VR7AS3",3,"MIT","https:\u002F\u002Fgithub.com\u002Flaurac8r\u002Fclaude-damn\u002Fblob\u002Fmain\u002Fskills\u002Ftask-list\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29,30,31,32],"list","task","task list","update","text","syntax","flags","back","permission","as","render","with","true","display","2026-11-10 10:12:30",false,"---\nname: task-list\ndescription:\n   TaskCreate \u002F TaskUpdate \u002F render the current TaskList in response to\n   `\u002Ftask-list` (with or without flags). The skill body executes immediately on\n   the syntax — no permission-seeking, no echoing the list back as plain text.\nargument-hint: \"[\u003Citem>...] [--update [\u003C#> :: \u003Cnew>]] [--display]\"\nuser-invocable: true\n---\n\n# \u002Ftask-list\n\nWhen the user invokes `\u002Ftask-list`, **act on the syntax immediately**. The\ndirective is unambiguous; do not ask \"would you like me to proceed?\" and do not\necho the input back as plain text before acting.\n\n## Modes\n\n### 1. Bare invocation: `\u002Ftask-list \u003Citems>`\n\nCall **TaskCreate** once per item in the provided list.\n\n- Items may arrive as a numbered list, bulleted list, or newline-separated\n  lines.\n- Use imperative-form subjects (e.g. `\"Read SKILL.md\"`, not `\"Reading SKILL.md\"`\n  or `\"Should I read SKILL.md?\"`).\n- Each item → one TaskCreate call. No batching into a single task.\n\n### 2. `--update` (no argument): reconcile\n\nDerive the **\"latest set of tasks for this session\"** from your own conversation\ncontext, then reconcile against the current TaskList:\n\n- **TaskCreate** for tasks that have emerged in conversation but aren't tracked\n  yet.\n- **TaskUpdate(status=deleted)** for tasks that are obsolete (scope dropped,\n  superseded, no longer relevant).\n- **Leave already-completed tasks alone.** They are history, not reconcilable\n  state.\n\nDo NOT ask the user \"what's the latest set?\" — the directive is to derive it\nfrom session context.\n\n### 3. `--update \u003C#> :: \u003Cnew subject\u002Fdescription>`: in-place rewrite\n\nCall `TaskUpdate(taskId=\u003C#>, subject=\u003Cnew>)` (or `description=`) on the **same\ntask ID**. The original ID is preserved.\n\n- The `::` separator splits the task ID from the new content.\n- Do NOT delete + re-create — that is a different operation. TaskUpdate\n  preserves the original ID; use it.\n- Default to `subject=`. Use `description=` (stripping the prefix) only when the\n  new content carries an explicit `desc:` prefix.\n- If `\u003C#>` does not match any task in the current TaskList, surface an inline\n  error and do NOT call TaskUpdate.\n\n### 4. `--display`: render the full TaskList\n\nRender every task in your response — id, status, subject (and owner if set).\n**Do NOT mutate any task.** This mode is read-only.\n\n- Call **TaskList** to retrieve the full state.\n- If the default rendering truncates (e.g. `... +N pending`), enumerate the rest\n  by calling **TaskGet** on each remaining task id.\n- Render the full list inline as a table or numbered list — never echo the\n  truncated form.\n\n## Fallback: Task tools absent from the tool surface\n\nAn interactive session may have `TaskCreate`, `TaskUpdate`, `TaskList`, and\n`TaskGet` gated off the tool surface entirely (a GrowthBook experiment flag;\nlegacy `TodoWrite` can be absent too, and headless `-p` sessions are\nunaffected). When none of the four tools are callable, this skill still applies\n— do not report \"the tool isn't available\" and drop tracking.\n\n- **State once, then proceed.** In your first response after detecting the gap,\n  say once that the Task tools are absent from this session's tool surface and\n  that you are tracking the queue as a Markdown table instead. Do not repeat the\n  caveat on every turn, and do not ask permission to proceed.\n- **This is a fallback, not a preference.** If the Task tools ARE present on the\n  tool surface, use them per the Modes above — the Markdown table is only for\n  when they are gone.\n\n### Markdown-table fallback format\n\nRender the queue as a Markdown table — not free prose, not a bulleted checklist\n— with exactly these columns:\n\n| #   | Status      | Task                           |\n| --- | ----------- | ------------------------------ |\n| 1   | pending     | Read SKILL.md                  |\n| 2   | in_progress | Run the test suite             |\n| 3   | completed   | Bump version in pyproject.toml |\n\n- `#` is a stable per-session ordinal — reuse it across edits to the same row;\n  do not renumber on every update.\n- `Status` is one of `pending`, `in_progress`, `completed`, or `deleted`.\n- Re-render the full table (not a diff) each time the queue changes, the same\n  way `--display` renders the full TaskList.\n\n## Examples\n\n### Bare invocation\n\n> User: `\u002Ftask-list`\n>\n> 1. Read SKILL.md\n> 2. Run the test suite\n> 3. Bump version in pyproject.toml\n\n→ Call `TaskCreate(subject=\"Read SKILL.md\", ...)`,\n`TaskCreate(subject=\"Run the test suite\", ...)`,\n`TaskCreate(subject=\"Bump version in pyproject.toml\", ...)`.\n\n### `--update` reconcile\n\n> User: `\u002Ftask-list --update` _(after 10 turns where item 4 was split, a new\n> task emerged, and item 5 was dropped)_\n\n→ `TaskCreate(...)` for the emerged task. →\n`TaskUpdate(taskId=5, status=deleted)` for the dropped task. → For #4: if it is\nbeing _rewritten in place_, `TaskUpdate(taskId=4, ...)`. If it is being _split\ninto multiple tasks_, `TaskCreate` the new tasks and\n`TaskUpdate(taskId=4, status=deleted)` the original — splitting is a distinct\noperation from rewriting, and only splitting may delete.\n\n### `--update \u003C#> :: \u003Cnew>`\n\n> User:\n> `\u002Ftask-list --update 3 :: Bump version in pyproject.toml AND .claude-plugin\u002Fplugin.json (lockstep)`\n\n→\n`TaskUpdate(taskId=3, subject=\"Bump version in pyproject.toml AND    .claude-plugin\u002Fplugin.json (lockstep)\")`.\n\n### `--display`\n\n> User: `\u002Ftask-list --display` _(20 tasks tracked; default render truncates\n> after 5)_\n\n→ `TaskList()` → see truncated 5 visible + \"... +15 pending\". → `TaskGet(...)` ×\n15 for the remaining IDs. → Render all 20 inline in the response.\n\n## Anti-patterns\n\nThese are the captured baseline rationalizations — do NOT do them.\n\n- ❌ **\"Would you like me to proceed?\"** The syntax is unambiguous. Act.\n- ❌ **\"The skill is not available, here is your list as plain text.\"** The\n  skill IS this body; if you're reading this, you can act.\n- ❌ **\"I've been tracking these in a markdown checklist already.\"** This\n  applies only when the Task tools are available on the tool surface — prose\n  checklists are not a substitute for TaskList state; TaskCreate is the tracking\n  mechanism. When the Task tools are absent, this anti-pattern does not apply:\n  the Markdown-table fallback above is the correct mechanism, not an improvised\n  substitute.\n- ❌ **\"I'll surface the proposed changes for confirmation.\"** For `--update`,\n  derive and execute. The user will see the result and can correct it via\n  another `\u002Ftask-list --update \u003C#> :: \u003Cfix>` if wrong.\n- ❌ **For a single-task `--update \u003C#>` rewrite: delete + recreate.** TaskUpdate\n  preserves the original ID; use its `subject=` \u002F `description=` parameters.\n  (Splitting one task into several is a different operation — see Mode 2.)\n- ❌ **For `--display`: render only the visible 5.** Default truncation is the\n  problem this mode exists to solve.\n\n## When to use\n\n- A multi-step task surfaced in conversation that needs durable tracking.\n- Mid-session scope drift that has left the TaskList stale.\n- Operator wants to see the full queue (default render truncates after ~5).\n\n## When NOT to use\n\n- One- or two-step trivial work — just do it.\n- The current task list is already accurate and up-to-date.\n- Deleting a single known-obsolete task — use `TaskUpdate(status=deleted)`\n  directly.\n","# \u002Ftask-list\n\nWhen the user invokes `\u002Ftask-list`, **act on the syntax immediately**. The\ndirective is unambiguous; do not ask \"would you like me to proceed?\" and do not\necho the input back as plain text before acting.\n\n## Modes\n\n### 1. Bare invocation: `\u002Ftask-list \u003Citems>`\n\nCall **TaskCreate** once per item in the provided list.\n\n- Items may arrive as a numbered list, bulleted list, or newline-separated\n  lines.\n- Use imperative-form subjects (e.g. `\"Read SKILL.md\"`, not `\"Reading SKILL.md\"`\n  or `\"Should I read SKILL.md?\"`).\n- Each item → one TaskCreate call. No batching into a single task.\n\n### 2. `--update` (no argument): reconcile\n\nDerive the **\"latest set of tasks for this session\"** from your own conversation\ncontext, then reconcile against the current TaskList:\n\n- **TaskCreate** for tasks that have emerged in conversation but aren't tracked\n  yet.\n- **TaskUpdate(status=deleted)** for tasks that are obsolete (scope dropped,\n  superseded, no longer relevant).\n- **Leave already-completed tasks alone.** They are history, not reconcilable\n  state.\n\nDo NOT ask the user \"what's the latest set?\" — the directive is to derive it\nfrom session context.\n\n### 3. `--update \u003C#> :: \u003Cnew subject\u002Fdescription>`: in-place rewrite\n\nCall `TaskUpdate(taskId=\u003C#>, subject=\u003Cnew>)` (or `description=`) on the **same\ntask ID**. The original ID is preserved.\n\n- The `::` separator splits the task ID from the new content.\n- Do NOT delete + re-create — that is a different operation. TaskUpdate\n  preserves the original ID; use it.\n- Default to `subject=`. Use `description=` (stripping the prefix) only when the\n  new content carries an explicit `desc:` prefix.\n- If `\u003C#>` does not match any task in the current TaskList, surface an inline\n  error and do NOT call TaskUpdate.\n\n### 4. `--display`: render the full TaskList\n\nRender every task in your response — id, status, subject (and owner if set).\n**Do NOT mutate any task.** This mode is read-only.\n\n- Call **TaskList** to retrieve the full state.\n- If the default rendering truncates (e.g. `... +N pending`), enumerate the rest\n  by calling **TaskGet** on each remaining task id.\n- Render the full list inline as a table or numbered list — never echo the\n  truncated form.\n\n## Fallback: Task tools absent from the tool surface\n\nAn interactive session may have `TaskCreate`, `TaskUpdate`, `TaskList`, and\n`TaskGet` gated off the tool surface entirely (a GrowthBook experiment flag;\nlegacy `TodoWrite` can be absent too, and headless `-p` sessions are\nunaffected). When none of the four tools are callable, this skill still applies\n— do not report \"the tool isn't available\" and drop tracking.\n\n- **State once, then proceed.** In your first response after detecting the gap,\n  say once that the Task tools are absent from this session's tool surface and\n  that you are tracking the queue as a Markdown table instead. Do not repeat the\n  caveat on every turn, and do not ask permission to proceed.\n- **This is a fallback, not a preference.** If the Task tools ARE present on the\n  tool surface, use them per the Modes above — the Markdown table is only for\n  when they are gone.\n\n### Markdown-table fallback format\n\nRender the queue as a Markdown table — not free prose, not a bulleted checklist\n— with exactly these columns:\n\n| #   | Status      | Task                           |\n| --- | ----------- | ------------------------------ |\n| 1   | pending     | Read SKILL.md                  |\n| 2   | in_progress | Run the test suite             |\n| 3   | completed   | Bump version in pyproject.toml |\n\n- `#` is a stable per-session ordinal — reuse it across edits to the same row;\n  do not renumber on every update.\n- `Status` is one of `pending`, `in_progress`, `completed`, or `deleted`.\n- Re-render the full table (not a diff) each time the queue changes, the same\n  way `--display` renders the full TaskList.\n\n## Examples\n\n### Bare invocation\n\n> User: `\u002Ftask-list`\n>\n> 1. Read SKILL.md\n> 2. Run the test suite\n> 3. Bump version in pyproject.toml\n\n→ Call `TaskCreate(subject=\"Read SKILL.md\", ...)`,\n`TaskCreate(subject=\"Run the test suite\", ...)`,\n`TaskCreate(subject=\"Bump version in pyproject.toml\", ...)`.\n\n### `--update` reconcile\n\n> User: `\u002Ftask-list --update` _(after 10 turns where item 4 was split, a new\n> task emerged, and item 5 was dropped)_\n\n→ `TaskCreate(...)` for the emerged task. →\n`TaskUpdate(taskId=5, status=deleted)` for the dropped task. → For #4: if it is\nbeing _rewritten in place_, `TaskUpdate(taskId=4, ...)`. If it is being _split\ninto multiple tasks_, `TaskCreate` the new tasks and\n`TaskUpdate(taskId=4, status=deleted)` the original — splitting is a distinct\noperation from rewriting, and only splitting may delete.\n\n### `--update \u003C#> :: \u003Cnew>`\n\n> User:\n> `\u002Ftask-list --update 3 :: Bump version in pyproject.toml AND .claude-plugin\u002Fplugin.json (lockstep)`\n\n→\n`TaskUpdate(taskId=3, subject=\"Bump version in pyproject.toml AND    .claude-plugin\u002Fplugin.json (lockstep)\")`.\n\n### `--display`\n\n> User: `\u002Ftask-list --display` _(20 tasks tracked; default render truncates\n> after 5)_\n\n→ `TaskList()` → see truncated 5 visible + \"... +15 pending\". → `TaskGet(...)` ×\n15 for the remaining IDs. → Render all 20 inline in the response.\n\n## Anti-patterns\n\nThese are the captured baseline rationalizations — do NOT do them.\n\n- ❌ **\"Would you like me to proceed?\"** The syntax is unambiguous. Act.\n- ❌ **\"The skill is not available, here is your list as plain text.\"** The\n  skill IS this body; if you're reading this, you can act.\n- ❌ **\"I've been tracking these in a markdown checklist already.\"** This\n  applies only when the Task tools are available on the tool surface — prose\n  checklists are not a substitute for TaskList state; TaskCreate is the tracking\n  mechanism. When the Task tools are absent, this anti-pattern does not apply:\n  the Markdown-table fallback above is the correct mechanism, not an improvised\n  substitute.\n- ❌ **\"I'll surface the proposed changes for confirmation.\"** For `--update`,\n  derive and execute. The user will see the result and can correct it via\n  another `\u002Ftask-list --update \u003C#> :: \u003Cfix>` if wrong.\n- ❌ **For a single-task `--update \u003C#>` rewrite: delete + recreate.** TaskUpdate\n  preserves the original ID; use its `subject=` \u002F `description=` parameters.\n  (Splitting one task into several is a different operation — see Mode 2.)\n- ❌ **For `--display`: render only the visible 5.** Default truncation is the\n  problem this mode exists to solve.\n\n## When to use\n\n- A multi-step task surfaced in conversation that needs durable tracking.\n- Mid-session scope drift that has left the TaskList stale.\n- Operator wants to see the full queue (default render truncates after ~5).\n\n## When NOT to use\n\n- One- or two-step trivial work — just do it.\n- The current task list is already accurate and up-to-date.\n- Deleting a single known-obsolete task — use `TaskUpdate(status=deleted)`\n  directly.\n",{"name":5,"description":7,"argument-hint":38,"user-invocable":39},"[\u003Citem>...] [--update [\u003C#> :: \u003Cnew>]] [--display]",true,"main","9635fb649979617cf684ea860dcaeb4eb272aa7d","skills\u002Ftask-list",1,"https:\u002F\u002Fgithub.com\u002Flaurac8r\u002Fclaude-damn","https:\u002F\u002Flaurac8r.github.io\u002Fclaude-damn\u002F","https:\u002F\u002Fgithub.com\u002Flaurac8r","https:\u002F\u002Fwww.webcatgirl.com\u002F","SWE | Python, Java, Typescript, Cloud, AI, ML | Open-source, large-language model, and decision model enthusiast","2026-09-10 01:18:30",{"source":8,"skillName":5,"commands":51,"prompt":61,"zipAvailable":39},[52,55,58],{"tool":53,"command":54},"npx","npx skills add laurac8r\u002Fclaude-damn --skill task-list",{"tool":56,"command":57},"bunx","bunx skills add laurac8r\u002Fclaude-damn --skill task-list",{"tool":59,"command":60},"pnpm","pnpm dlx skills add laurac8r\u002Fclaude-damn --skill task-list","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Flaurac8r\u002Fclaude-damn\u002Fblob\u002Fmain\u002Fskills\u002Ftask-list\u002FSKILL.md",[63,69,73,77,81,85,89,93,97,101,105,109,113,117,121],{"path":64,"resourceType":65,"resourceTypeDesc":66,"sizeBytes":67,"sourceHtmlUrl":68},"evals\u002Fbenchmark.json","REFERENCE","参考文档",2324,"https:\u002F\u002Fgithub.com\u002Flaurac8r\u002Fclaude-damn\u002Fblob\u002Fmain\u002Fskills\u002Ftask-list\u002Fevals\u002Fbenchmark.json",{"path":70,"resourceType":65,"resourceTypeDesc":66,"sizeBytes":71,"sourceHtmlUrl":72},"evals\u002Fbenchmark.md",4069,"https:\u002F\u002Fgithub.com\u002Flaurac8r\u002Fclaude-damn\u002Fblob\u002Fmain\u002Fskills\u002Ftask-list\u002Fevals\u002Fbenchmark.md",{"path":74,"resourceType":65,"resourceTypeDesc":66,"sizeBytes":75,"sourceHtmlUrl":76},"evals\u002Fiteration-1\u002Fbaseline-results.md",4193,"https:\u002F\u002Fgithub.com\u002Flaurac8r\u002Fclaude-damn\u002Fblob\u002Fmain\u002Fskills\u002Ftask-list\u002Fevals\u002Fiteration-1\u002Fbaseline-results.md",{"path":78,"resourceType":65,"resourceTypeDesc":66,"sizeBytes":79,"sourceHtmlUrl":80},"evals\u002Fiteration-1\u002Feval-bare-pressure\u002Fscenario.md",1546,"https:\u002F\u002Fgithub.com\u002Flaurac8r\u002Fclaude-damn\u002Fblob\u002Fmain\u002Fskills\u002Ftask-list\u002Fevals\u002Fiteration-1\u002Feval-bare-pressure\u002Fscenario.md",{"path":82,"resourceType":65,"resourceTypeDesc":66,"sizeBytes":83,"sourceHtmlUrl":84},"evals\u002Fiteration-1\u002Feval-bare-simple\u002Fscenario.md",902,"https:\u002F\u002Fgithub.com\u002Flaurac8r\u002Fclaude-damn\u002Fblob\u002Fmain\u002Fskills\u002Ftask-list\u002Fevals\u002Fiteration-1\u002Feval-bare-simple\u002Fscenario.md",{"path":86,"resourceType":65,"resourceTypeDesc":66,"sizeBytes":87,"sourceHtmlUrl":88},"evals\u002Fiteration-1\u002Feval-display-fulllist\u002Fscenario.md",1087,"https:\u002F\u002Fgithub.com\u002Flaurac8r\u002Fclaude-damn\u002Fblob\u002Fmain\u002Fskills\u002Ftask-list\u002Fevals\u002Fiteration-1\u002Feval-display-fulllist\u002Fscenario.md",{"path":90,"resourceType":65,"resourceTypeDesc":66,"sizeBytes":91,"sourceHtmlUrl":92},"evals\u002Fiteration-1\u002Feval-update-noarg-reconcile\u002Fscenario.md",1910,"https:\u002F\u002Fgithub.com\u002Flaurac8r\u002Fclaude-damn\u002Fblob\u002Fmain\u002Fskills\u002Ftask-list\u002Fevals\u002Fiteration-1\u002Feval-update-noarg-reconcile\u002Fscenario.md",{"path":94,"resourceType":65,"resourceTypeDesc":66,"sizeBytes":95,"sourceHtmlUrl":96},"evals\u002Fiteration-1\u002Feval-update-witharg-rewrite\u002Fscenario.md",1164,"https:\u002F\u002Fgithub.com\u002Flaurac8r\u002Fclaude-damn\u002Fblob\u002Fmain\u002Fskills\u002Ftask-list\u002Fevals\u002Fiteration-1\u002Feval-update-witharg-rewrite\u002Fscenario.md",{"path":98,"resourceType":65,"resourceTypeDesc":66,"sizeBytes":99,"sourceHtmlUrl":100},"evals\u002Fiteration-2\u002Feval-bare-pressure\u002Fscenario.md",1747,"https:\u002F\u002Fgithub.com\u002Flaurac8r\u002Fclaude-damn\u002Fblob\u002Fmain\u002Fskills\u002Ftask-list\u002Fevals\u002Fiteration-2\u002Feval-bare-pressure\u002Fscenario.md",{"path":102,"resourceType":65,"resourceTypeDesc":66,"sizeBytes":103,"sourceHtmlUrl":104},"evals\u002Fiteration-2\u002Feval-bare-simple\u002Fscenario.md",1753,"https:\u002F\u002Fgithub.com\u002Flaurac8r\u002Fclaude-damn\u002Fblob\u002Fmain\u002Fskills\u002Ftask-list\u002Fevals\u002Fiteration-2\u002Feval-bare-simple\u002Fscenario.md",{"path":106,"resourceType":65,"resourceTypeDesc":66,"sizeBytes":107,"sourceHtmlUrl":108},"evals\u002Fiteration-2\u002Feval-display-fulllist\u002Fscenario.md",1785,"https:\u002F\u002Fgithub.com\u002Flaurac8r\u002Fclaude-damn\u002Fblob\u002Fmain\u002Fskills\u002Ftask-list\u002Fevals\u002Fiteration-2\u002Feval-display-fulllist\u002Fscenario.md",{"path":110,"resourceType":65,"resourceTypeDesc":66,"sizeBytes":111,"sourceHtmlUrl":112},"evals\u002Fiteration-2\u002Feval-update-noarg-reconcile\u002Fscenario.md",1891,"https:\u002F\u002Fgithub.com\u002Flaurac8r\u002Fclaude-damn\u002Fblob\u002Fmain\u002Fskills\u002Ftask-list\u002Fevals\u002Fiteration-2\u002Feval-update-noarg-reconcile\u002Fscenario.md",{"path":114,"resourceType":65,"resourceTypeDesc":66,"sizeBytes":115,"sourceHtmlUrl":116},"evals\u002Fiteration-2\u002Feval-update-witharg-rewrite\u002Fscenario.md",1857,"https:\u002F\u002Fgithub.com\u002Flaurac8r\u002Fclaude-damn\u002Fblob\u002Fmain\u002Fskills\u002Ftask-list\u002Fevals\u002Fiteration-2\u002Feval-update-witharg-rewrite\u002Fscenario.md",{"path":118,"resourceType":65,"resourceTypeDesc":66,"sizeBytes":119,"sourceHtmlUrl":120},"evals\u002Fiteration-2\u002Fresults.md",4853,"https:\u002F\u002Fgithub.com\u002Flaurac8r\u002Fclaude-damn\u002Fblob\u002Fmain\u002Fskills\u002Ftask-list\u002Fevals\u002Fiteration-2\u002Fresults.md",{"path":122,"resourceType":65,"resourceTypeDesc":66,"sizeBytes":123,"sourceHtmlUrl":124},"evals\u002Frationalizations.md",3623,"https:\u002F\u002Fgithub.com\u002Flaurac8r\u002Fclaude-damn\u002Fblob\u002Fmain\u002Fskills\u002Ftask-list\u002Fevals\u002Frationalizations.md",[126,163,187,203,220,243],{"skillNo":127,"name":128,"nameZh":6,"description":129,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":130,"categories":131,"keywords":143,"publishedAt":33},"01M6K5V5PPEYZGPW80S9QAF7WZ","visual-aid","Use when the user asks for a quick visual aid, visual explainer, concept card, one-pager, poster, cheat sheet, infographic, visual summary, summary card, or mini explainer page — especially from input like a block of text, attached images, an attached song (lyrics\u002Faudio), a web link, a CSV\u002Fdataset, a math formula, a code snippet to walk through, a tutorial's steps, a timeline, or an A-vs-B comparison. Triggers include \"make me a quick visual aid\", \"turn this into a one-pager \u002F cheat sheet \u002F explainer\", \"summarize this visually\", \"give me a visual of\", \"explain this on a single page\", \"make a concept card for\", \"whip up a page about\", \"build a mini page that shows\", \"something I can paste into a doc explaining X\", or any request to render a topic\u002Ftext\u002Flink\u002Fimage-set\u002Fsong\u002Fdata into a standalone page. Prefer this skill over frontend-design when the ask is an explanatory single-file page (not a production UI), over playground when the output is static information display (not an interactive configurator), and over a Markdown\u002Fcode answer when the user explicitly wants a *page* (HTML). Produces a single self-contained HTML file that opens on double-click without a server.","https:\u002F\u002Fgithub.com\u002Flaurac8r\u002Fclaude-damn\u002Fblob\u002Fmain\u002Fskills\u002Fvisual-aid\u002FSKILL.md",[132,137,140],{"categoryNo":133,"categoryName":134,"taxonomyType":135,"taxonomyTypeDesc":136},"01JBSEEDCAT000000000000009","前端开发","SCENARIO","使用场景",{"categoryNo":138,"categoryName":139,"taxonomyType":135,"taxonomyTypeDesc":136},"01JBSEEDCAT000000000000015","视觉设计",{"categoryNo":141,"categoryName":142,"taxonomyType":135,"taxonomyTypeDesc":136},"01JBSEEDCAT000000000000016","图像与多媒体",[144,145,146,147,148,149,150,29,151,152,153,154,155,156,157,158,159,160,161,162],"visual aid","visual","frontend-design","static","visual explainer","quick","information","card","click","song","infographic","formula","images","up","Audio","SET","design","frontend","standalone",{"skillNo":164,"name":165,"nameZh":6,"description":166,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":167,"categories":168,"keywords":169,"publishedAt":33},"01M6K5TZZ34SBMQMN2EX11XMYS","tesseract","Use when you've been poking at the same file, concept, or problem across many sessions and want to step outside time to see its whole arc — or when you want to leave a note for next-session-you. Triggers: 'I've been going in circles on X', 'what have I learned about X', 'what did past-me say about X', 'I keep rediscovering this'.","https:\u002F\u002Fgithub.com\u002Flaurac8r\u002Fclaude-damn\u002Fblob\u002Fmain\u002Fskills\u002Ftesseract\u002FSKILL.md",[],[165,170,171,172,173,174,145,175,176,177,178,179,180,181,182,183,184,31,185,186],"use","learned","triggers","anchor","across","time","me","say","keep","session","file","sessions","problem","for","concept","morse","you",{"skillNo":188,"name":189,"nameZh":6,"description":190,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":191,"categories":192,"keywords":193,"publishedAt":33},"01M6K5TSVWXGRFMQTSM8VFSRDS","tdd","Invoke test-driven development as an explicit one-at-a-time micro-cycle — one test, one piece of functionality, refactor, then repeat for the next behavior","https:\u002F\u002Fgithub.com\u002Flaurac8r\u002Fclaude-damn\u002Fblob\u002Fmain\u002Fskills\u002Ftdd\u002FSKILL.md",[],[189,194,183,195,31,196,28,175,197,198,199,200,201,202],"refactor","at","driven","cycle","behavior","micro","development","test","next",{"skillNo":204,"name":205,"nameZh":6,"description":206,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":207,"categories":208,"keywords":209,"publishedAt":33},"01M6K5TP1KX237V9FDZ8PMNXH5","tdd-cat","TDD workflow with subagent-driven-development — \u002Ftdd composed with \u002Fcat, plus the A\u002FB TDD execution-mode axis (split-phase vs micro-cycle) asked as a third question in \u002Fcat's combined pre-dispatch question","https:\u002F\u002Fgithub.com\u002Flaurac8r\u002Fclaude-damn\u002Fblob\u002Fmain\u002Fskills\u002Ftdd-cat\u002FSKILL.md",[],[210,211,189,28,212,31,213,30,196,197,20,214,215,216,217,218,199,200,219],"tdd cat","cat","mode","split","dispatch","question","subagent","tdd workflow","execution","workflow",{"skillNo":221,"name":222,"nameZh":6,"description":223,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":224,"categories":225,"keywords":226,"publishedAt":33},"01M6K5T8CER0BAPJVJDG5F5GD0","sync","Sync files between two local directories, repos, or git worktrees. Five modes (plan\u002Finteractive\u002Fpush\u002Fpull\u002Fmirror), .gitignore-aware, Claude-workflow allowlist via --claude, dropbox-restore-style per-directory prompts.","https:\u002F\u002Fgithub.com\u002Flaurac8r\u002Fclaude-damn\u002Fblob\u002Fmain\u002Fskills\u002Fsync\u002FSKILL.md",[],[222,227,228,212,31,229,230,231,232,233,234,235,236,237,238,239,240,241,242,219],"git worktrees","mirror","limit","yes","directories","dry","local","gitignore","restore","files","modes","interactive","plan","push","pull","delete",{"skillNo":244,"name":245,"nameZh":6,"description":246,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":247,"categories":248,"keywords":249,"publishedAt":33},"01M6K5T2S3J291RE2B2GW7J43H","super","Brainstorming (alias for \u002Fbrainstorming)","https:\u002F\u002Fgithub.com\u002Flaurac8r\u002Fclaude-damn\u002Fblob\u002Fmain\u002Fskills\u002Fsuper\u002FSKILL.md",[],[245,183,31,250,20,251],"alias","brainstorming"]