Agent Skills › ykdojo/claude-code-tips

ykdojo/claude-code-tips

GitHub

用于克隆当前对话会话,使用户能够分叉并尝试不同的方法。通过获取会话ID和项目路径,执行克隆脚本生成新副本,用户可通过claude -r命令访问带有时间戳标记的克隆对话。

8 skills 9,014

Install All Skills

npx skills add ykdojo/claude-code-tips --all -g -y
More Options

List skills in collection

npx skills add ykdojo/claude-code-tips --list

Skills in Collection (8)

用于克隆当前对话会话,使用户能够分叉并尝试不同的方法。通过获取会话ID和项目路径,执行克隆脚本生成新副本,用户可通过claude -r命令访问带有时间戳标记的克隆对话。
用户希望基于当前对话创建分支 用户想尝试不同解决方案而不影响原对话
skills/clone/SKILL.md
npx skills add ykdojo/claude-code-tips --skill clone -g -y
SKILL.md
Frontmatter
{
    "name": "clone",
    "description": "Clone the current conversation so the user can branch off and try a different approach."
}

Clone the current conversation so the user can branch off and try a different approach.

Steps:

  1. Get the current session ID and project path: tail -1 ~/.claude/history.jsonl | jq -r '[.sessionId, .project] | @tsv'
  2. Find clone-conversation.sh with bash: find ~/.claude -name "clone-conversation.sh" 2>/dev/null | sort -V | tail -1
    • This finds the script whether installed via plugin or manual symlink
    • Uses version sort to prefer the latest version if multiple exist
  3. Run: <script-path> <session-id> <project-path>
    • Always pass the project path from the history entry, not the current working directory
  4. Tell the user they can access the cloned conversation with claude -r and look for the one marked [CLONED <timestamp>] (e.g., [CLONED Jan 7 14:30])
分析GitHub Actions工作流运行失败的根本原因。通过检查日志、评估作业历史波动性、定位破坏性提交及搜索现有修复PR,生成包含故障摘要、根因分析和改进建议的详细报告。
用户询问GitHub Actions运行失败原因 需要诊断特定工作流作业的稳定性问题 排查CI/CD流水线中的间歇性故障
skills/gha/SKILL.md
npx skills add ykdojo/claude-code-tips --skill gha -g -y
SKILL.md
Frontmatter
{
    "name": "gha",
    "description": "Analyze GitHub Actions failures and identify root causes",
    "argument-hint": "<url>"
}

Investigate this GitHub Actions URL: $ARGUMENTS

Use the gh CLI to analyze this workflow run. Your investigation should:

  1. Get basic info & identify actual failure:

    • What workflow/job failed, when, and on which commit?
    • CRITICAL: Read the full logs carefully to find what SPECIFICALLY caused the exit code 1
    • Distinguish between warnings/non-fatal errors vs actual failures
    • Look for patterns like "failing:", "fatal:", or script logic that determines when to exit 1
    • If you see both "non-fatal" and "fatal" errors, focus on what actually caused the failure
  2. Check flakiness: Check the past 10-20 runs of THE EXACT SAME failing job:

    • IMPORTANT: If a workflow has multiple jobs, you must check history for the SPECIFIC JOB that failed, not just the workflow
    • Use gh run list --workflow=<workflow-name> to get run IDs, then gh run view <run-id> --json jobs to check the specific job's status
    • Is this a one-time failure or recurring pattern for THIS SPECIFIC JOB?
    • What's the success rate for THIS JOB recently?
    • When did THIS JOB last pass?
  3. Identify breaking commit (if there's a pattern of failures for the specific job):

    • Find the first run where THIS SPECIFIC JOB failed and the last run where it passed
    • Identify the commit that introduced the failure
    • Verify by checking: does THIS JOB fail in ALL runs after that commit? Does it pass in ALL runs before?
    • If verified, report the breaking commit with high confidence
  4. Root cause: Based on logs, history, and any breaking commit, what's the likely cause?

    • Focus on what ACTUALLY caused the failure (not just any errors you see)
    • Verify your hypothesis against the logs and failure logic
  5. Check for existing fix PRs: Search for open PRs that might already address this issue:

    • Use gh pr list --state open --search "<keywords>" with relevant error messages or file names
    • Check if any open PR modifies the failing file/workflow
    • If a fix PR exists, note it in your report and skip the recommendation section

Write a final report with:

  • Summary of failure (what specifically triggered the exit code 1)
  • Flakiness assessment (one-time vs recurring, success rate)
  • Breaking commit (if identified and verified)
  • Root cause analysis (based on the ACTUAL failure trigger)
  • Existing fix PR (if found - include PR number and link)
  • Recommendation (skip if fix PR already exists)
该技能用于克隆当前对话的后半部分,丢弃早期上下文以减少 token 消耗,同时保留近期工作成果。通过查找并运行专用脚本实现会话克隆,最后提供直接恢复新会话的命令。
用户希望减少当前对话的 token 使用量 用户想基于最近的工作内容开启新会话但保留上下文
skills/half-clone/SKILL.md
npx skills add ykdojo/claude-code-tips --skill half-clone -g -y
SKILL.md
Frontmatter
{
    "name": "half-clone",
    "description": "Clone the later half of the current conversation, discarding earlier context to reduce token usage while preserving recent work."
}

Clone the later half of the current conversation, discarding earlier context to reduce token usage while preserving recent work.

Steps:

  1. Get the current session ID and project path: tail -1 ~/.claude/history.jsonl | jq -r '[.sessionId, .project] | @tsv'
  2. Find half-clone-conversation.sh with bash: find ~/.claude -name "half-clone-conversation.sh" 2>/dev/null | sort -V | tail -1
    • This finds the script whether installed via plugin or manual symlink
    • Uses version sort to prefer the latest version if multiple exist
  3. Preview the conversation to verify the session ID: <script-path> --preview <session-id> <project-path>
    • Check that the first and last messages match the current conversation
  4. Run the clone: <script-path> <session-id> <project-path>
    • Always pass the project path from the history entry, not the current working directory
  5. The script prints the new session ID (the New session: <id> line). Give the user the exact command to resume it directly, no picker needed:
    claude --resume <new-session-id>
    
    The script automatically appends a reference to the original conversation at the end of the cloned file. (The new session is also marked [HALF-CLONE <timestamp>], e.g. [HALF-CLONE Jan 7 14:30], so claude -r and picking it works as a fallback.)
用于创建或更新 HANDOFF.md 交接文档,记录项目目标、当前进度、有效与无效方案及后续步骤,帮助新 Agent 快速恢复上下文并继续工作。
需要暂停任务并交接给其他 Agent 用户希望保存当前工作状态以便后续恢复
skills/handoff/SKILL.md
npx skills add ykdojo/claude-code-tips --skill handoff -g -y
SKILL.md
Frontmatter
{
    "name": "handoff",
    "description": "Write or update a handoff document so the next agent with fresh context can continue this work."
}

Write or update a handoff document so the next agent with fresh context can continue this work.

Steps:

  1. Check if HANDOFF.md already exists in the project
  2. If it exists, read it first to understand prior context before updating
  3. Create or update the document with:
    • Goal: What we're trying to accomplish
    • Current Progress: What's been done so far
    • What Worked: Approaches that succeeded
    • What Didn't Work: Approaches that failed (so they're not repeated)
    • Next Steps: Clear action items for continuing

Save as HANDOFF.md in the project root and tell the user the file path so they can start a fresh conversation with just that path.

通过 Hacker News 官方 API 获取并总结热门故事、特定文章及其评论线程。支持按主题搜索、获取前 N 名故事及抓取关联文章正文,适用于 HN 内容摘要需求。
总结 HN 首页热门故事 查询特定 HN 文章及其讨论 获取 hckrnews 排名前 N 的内容
skills/hn-summarize/SKILL.md
npx skills add ykdojo/claude-code-tips --skill hn-summarize -g -y
SKILL.md
Frontmatter
{
    "name": "hn-summarize",
    "description": "Fetch and summarize Hacker News \/ hckrnews.com top stories, articles, and their comment threads. Use when asked to summarize HN front-page stories, a specific HN story plus its discussion, or \"the top N from hckrnews\"."
}

HN Summarize

hckrnews.com is a JavaScript-rendered front end - curling it returns an empty shell, so do not scrape it. Instead use the official Hacker News APIs (Firebase + Algolia), which give the same stories with points, comment counts, and full comment trees. These APIs return plain JSON, so plain curl works fine.

1. Current top stories (the "top 10")

topstories.json returns 500 story IDs in front-page rank order. Take the first N and look up each item.

curl -sL 'https://hacker-news.firebaseio.com/v0/topstories.json' -o /tmp/top.json
python3 -c "
import json,urllib.request
ids=json.load(open('/tmp/top.json'))[:10]
for i,sid in enumerate(ids,1):
    d=json.load(urllib.request.urlopen(f'https://hacker-news.firebaseio.com/v0/item/{sid}.json'))
    print(f\"{i}. {d.get('title')} | {d.get('score')} pts | {d.get('descendants',0)} comments | id {sid}\")
    print(f\"   {d.get('url','(text post)')}\")
"

2. Find a specific story by topic (Algolia search)

curl -sL 'https://hn.algolia.com/api/v1/search?query=YOUR+QUERY&tags=story' -o /tmp/s.json
python3 -c "
import json
for h in json.load(open('/tmp/s.json'))['hits'][:8]:
    print(h['objectID'], '|', h.get('points'), 'pts |', h.get('num_comments'), 'comments |', h['title'])
    print('   ', h.get('url'))
"
  • Add &numericFilters=created_at_i>UNIXTS to restrict to recent stories (avoids matching an old duplicate of the same headline).
  • search ranks by relevance; search_by_date ranks by recency.
  • Pick the objectID with the highest points/comments - that's the live front-page discussion.

3. Fetch a story + its comment tree

curl -sL 'https://hn.algolia.com/api/v1/items/OBJECT_ID' -o /tmp/hn.json

The response is a nested tree: top-level children are root comments, each with their own children. Flatten and print root comments in thread order (HN's default ranking ≈ this order):

python3 -c "
import json,re
d=json.load(open('/tmp/hn.json'))
def clean(t):
    t=re.sub('<[^>]+>',' ',t)
    for a,b in [('&#x27;',chr(39)),('&gt;','>'),('&lt;','<'),('&amp;','&'),('&quot;','\"')]:
        t=t.replace(a,b)
    return re.sub(' +',' ',t).strip()
for c in d.get('children',[])[:15]:
    if c.get('text'):
        print(f\"{c.get('author')}: {clean(c['text'])[:550]}\")
        print('---')
"

Note: Algolia's per-comment points field is now always null, so sort by thread order (already roughly HN's ranking) rather than by points. For deeper threads, recurse into children and track depth.

4. Fetch the linked article

Fetch the story's article with curl -sL <url>, then strip tags with sed 's/<[^>]*>//g' to extract readable text, or grep for the key sentences. If the page is JS-heavy or paywalled, try a Wayback Machine snapshot:

curl -sL 'http://archive.org/wayback/available?url=ARTICLE_URL' -o /tmp/wb.json
python3 -c "import json;print(json.load(open('/tmp/wb.json'))['archived_snapshots'].get('closest',{}).get('url'))"

Then fetch the snapshot URL the same way. If the host blocks outbound curl requests, fetch through a container or proxy you have available.

Summary format

For each story give: title, points, comment count, source, a few sentences on what the article says, then comment themes - group the discussion into 3-6 recurring threads (agreement, rebuttals, tangents) rather than listing comments one by one. Note when the top thread is a critical/contrarian take, since that's common on HN.

通过curl调用Reddit JSON API获取帖子和评论。支持列表、搜索及解析,需设置User-Agent并处理403封锁。提供DuckDuckGo跳转解锁方案,强调顺序请求与限流策略以避免被封禁。
访问Reddit URL 在Reddit上研究话题 Reddit返回403或访问被阻止
skills/reddit-fetch/SKILL.md
npx skills add ykdojo/claude-code-tips --skill reddit-fetch -g -y
SKILL.md
Frontmatter
{
    "name": "reddit-fetch",
    "description": "Fetch content from Reddit using the curl JSON API. Use when accessing Reddit URLs, researching topics on Reddit, or when Reddit returns 403\/blocked errors."
}

Reddit Fetch

Reddit's public JSON API works by appending .json to any Reddit URL. All curl examples below need a browser User-Agent header - export it once and reuse it:

UA="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"

Endpoints

# Listing - swap hot for new/top/rising; for top add &t=day|week|month|year|all
curl -s -L -H "User-Agent: $UA" "https://old.reddit.com/r/SUBREDDIT/hot.json?limit=15"
# Post + comments - JSON array where [0]=post, [1]=comment tree
curl -s -L -H "User-Agent: $UA" "https://old.reddit.com/r/SUBREDDIT/comments/POST_ID.json?limit=20"
# Search within a subreddit
curl -s -L -H "User-Agent: $UA" "https://old.reddit.com/r/SUBREDDIT/search.json?q=QUERY&restrict_sr=on&sort=new&limit=15"

Parsing the JSON

Use jq to extract what you need:

# List posts
curl -s -L -o /tmp/reddit_result.txt -w "%{http_code}" -H "User-Agent: $UA" \
  'https://old.reddit.com/r/SUBREDDIT/hot.json?limit=15'

jq -r '.data.children[] | .data | "\(.title)\n   \(.score) pts | \(.num_comments) comments | u/\(.author) | id: \(.id)\n"' /tmp/reddit_result.txt

# List comments from a specific post (the [1] element has comments)
jq -r '.[1].data.children[] | select(.kind == "t1") | .data | "u/\(.author) (\(.score) pts):\n  \(.body[:300])\n"' /tmp/reddit_thread.txt

Key details:

  • Fetch to a temp file (-o) then parse - avoids pipe encoding issues; -w "%{http_code}" prints the status for debugging empty responses.
  • -L follows redirects; single-quote the URL so the shell doesn't eat & in query strings.
  • .body[:300] truncates long comment bodies (jq 1.7+).

Rate limiting

Reddit's JSON API rate-limits aggressively:

  • Don't fire parallel requests - run them sequentially with sleep 2/sleep 3 between each. Fetch one listing, parse it, then fetch threads one at a time.
  • Empty response (0 bytes): wait 3-5s and retry. HTTP 429: back off 10-15s.

When things get blocked: the DuckDuckGo-hop unlock

Reddit increasingly hard-blocks automated access - curl (host AND container) 403s, and even a cold Playwright navigation to reddit.com hits a "You've been blocked by network security" challenge page. The reliable fix is to arrive at Reddit through a DuckDuckGo result redirect: that sets a Reddit session cookie which unlocks direct .json access for the rest of the browser session.

Step 1 - the DDG hop (the unlock). Do this once per session before any .json fetch.

  1. mcp__playwright__browser_navigate to https://html.duckduckgo.com/html/?q=site:reddit.com/r/SUBREDDIT+YOUR+QUERY
  2. Grab the first result's full href - it's a DDG redirect that includes a rut token (https://duckduckgo.com/l/?uddg=...&rut=...). The token is required; navigating to the bare /l/?uddg= without it 400s.
    () => document.querySelector('.result__a')?.href
    
  3. browser_navigate to that full redirect href. It lands on the real www.reddit.com thread (page title = the post title, not "Blocked") and sets the session cookie.

Step 2 - now direct .json works. For the rest of the session, navigate Playwright straight to any .json URL and JSON.parse(document.body.innerText) - same shape as curl, so [0]=post / [1]=comments still applies. Full recency sorting (sort=new&t=week) is restored.

  1. browser_navigate to e.g. https://www.reddit.com/r/SUBREDDIT/search.json?q=QUERY&restrict_sr=on&sort=new&t=week&limit=25
  2. browser_evaluate, always wrapped in try/catch (return document.body.innerText.slice(0,200) on failure so you can see a challenge page if the session lapsed - just re-do the hop):
    () => {
      try {
        const data = JSON.parse(document.body.innerText);
        return data.data.children.map(c => ({
          t: c.data.title, s: c.data.score, n: c.data.num_comments, id: c.data.id
        }));
      } catch (e) { return document.body.innerText.slice(0, 200); }
    }
    
  3. For a thread, navigate to .../comments/POST_ID.json?limit=30&sort=top and parse data[0] (post) and data[1].data.children (comments).

Use www.reddit.com (not old.reddit.com) for browser navigation.

Fallbacks

  • Fast path, often fails: plain curl JSON (host or safeclaw container) with a browser User-Agent is faster when it works, but usually 403s now (changing the UA doesn't help). Worth one quick try only if you're already shelling out; on 403, go to the DDG hop.
  • More comments per thread: load the rendered thread page (after the hop) and scrape the shreddit DOM - it returns more comments than .json?limit=:
    () => ({
      title: document.querySelector('shreddit-post')?.getAttribute('post-title'),
      comments: [...document.querySelectorAll('shreddit-comment')].map(c => ({
        author: c.getAttribute('author'),
        score:  c.getAttribute('score'),
        text:   c.querySelector('.md')?.innerText
      }))
    })
    
  • No Playwright at all: use Claude for Chrome to open the thread / .json URL and read it off the page.
分析近期对话历史,识别CLAUDE.md中的违规指令、可优化模式及过时内容。通过子代理并行审查,生成针对全局和本地文件的改进建议,辅助优化AI行为配置。
用户希望优化CLAUDE.md配置文件 需要基于对话历史反思和改进项目规则 检查现有指令是否被有效遵循
skills/review-claudemd/SKILL.md
npx skills add ykdojo/claude-code-tips --skill review-claudemd -g -y
SKILL.md
Frontmatter
{
    "name": "review-claudemd",
    "description": "Review recent conversations to find improvements for CLAUDE.md files."
}

Review CLAUDE.md from conversation history

Analyze recent conversations to improve both global (~/.claude/CLAUDE.md) and local (project) CLAUDE.md files.

Step 1: Find conversation history

The project's conversation history is in ~/.claude/projects/. The folder name is the project path with slashes replaced by dashes.

# Find the project folder (replace / with -)
PROJECT_PATH=$(pwd | sed 's|/|-|g' | sed 's|^-||')
CONVO_DIR=~/.claude/projects/-${PROJECT_PATH}
ls -lt "$CONVO_DIR"/*.jsonl | head -20

Step 2: Extract recent conversations

Extract the 15-20 most recent conversations (excluding the current one) to a temp directory:

SCRATCH=/tmp/claudemd-review-$(date +%s)
mkdir -p "$SCRATCH"

for f in $(ls -t "$CONVO_DIR"/*.jsonl | head -20); do
  basename=$(basename "$f" .jsonl)
  # Skip current conversation if known
  cat "$f" | jq -r '
    if .type == "user" then
      "USER: " + (.message.content // "")
    elif .type == "assistant" then
      "ASSISTANT: " + ((.message.content // []) | map(select(.type == "text") | .text) | join("\n"))
    else
      empty
    end
  ' 2>/dev/null | grep -v "^ASSISTANT: $" > "$SCRATCH/${basename}.txt"
done

ls -lhS "$SCRATCH"

Step 3: Spin up subagents

Launch parallel subagents to analyze conversations. Each agent should read:

  • Global CLAUDE.md: ~/.claude/CLAUDE.md
  • Local CLAUDE.md: ./CLAUDE.md (if exists)
  • Batch of conversation files

Give each agent this prompt template:

Read:
1. Global CLAUDE.md: ~/.claude/CLAUDE.md
2. Local CLAUDE.md: [project]/CLAUDE.md
3. Conversations: [list of files]

Analyze the conversations against BOTH CLAUDE.md files. Find:
1. Instructions that exist but were violated (need reinforcement or rewording)
2. Patterns that should be added to LOCAL CLAUDE.md (project-specific)
3. Patterns that should be added to GLOBAL CLAUDE.md (applies everywhere)
4. Anything in either file that seems outdated or unnecessary

Be specific. Output bullet points only.

Batch conversations by size:

  • Large (>100KB): 1-2 per agent
  • Medium (10-100KB): 3-5 per agent
  • Small (<10KB): 5-10 per agent

Step 4: Aggregate findings

Combine results from all agents into a summary with these sections:

  1. Instructions violated - existing rules that weren't followed (need stronger wording)
  2. Suggested additions - LOCAL - project-specific patterns
  3. Suggested additions - GLOBAL - patterns that apply everywhere
  4. Potentially outdated - items that may no longer be relevant

Present as tables or bullet points. Ask user if they want edits drafted.

分析并推荐Claude Code的最佳运行版本。通过对比已安装与最新版本的差异,扫描变更日志以识别回归问题,并结合GitHub社区反馈判断版本稳定性,从而给出更新、保持现状或指定版本的建议。
询问哪个Claude Code版本最安全或最佳 决定是否立即更新Claude Code 评估近期发布版本是否存在已知缺陷 查询当前安装版本与最新版本之间的变更内容
skills/version-check/SKILL.md
npx skills add ykdojo/claude-code-tips --skill version-check -g -y
SKILL.md
Frontmatter
{
    "name": "version-check",
    "description": "Recommend which Claude Code version to run, or whether to update. Use when asked which Claude Code version is best\/safe, whether to update now, whether a recent release is buggy, or what changed since the installed version."
}

Claude Code version check

The goal is a recommendation: stay put, update, or pin to a specific version. Claude Code ships latest very frequently (often 1-2x/day), so "best version" is a moving target and the answer is usually a range, not a single build.

Heuristics (read first)

  • stable lags latest and is NOT an LTS. The npm stable dist-tag is just a pointer that trails latest by a handful of patch releases. It can even sit behind an important fix release, so "stable" does not mean "most bugs fixed." Don't blindly recommend @stable.
  • Quiet version = good sign. If nobody is complaining about a recent release, that's a positive signal. A loud pile-on about a specific build is the thing to avoid.
  • Version comparisons are the strongest signal. Posts where people compare builds ("X broke Y, rolled back to Z") tell you exactly which release to avoid.
  • Stay ~a day behind the bleeding edge. Avoid a release that's only a few hours old - let others surface same-day regressions first.
  • The real lever is when you update, not stable-vs-latest. Default Claude Code auto-updates to latest constantly, which is how you drift onto a same-day regression.

1. What's installed vs what's published

claude --version
npm view @anthropic-ai/claude-code dist-tags --json

dist-tags shows latest, stable, and next. Compare against the installed version to see how far ahead/behind each pointer is.

Recent releases and their timestamps (to see how fast things are shipping):

npm view @anthropic-ai/claude-code time --json | python3 -c "import sys,json;d=json.load(sys.stdin);print('\n'.join(f'{k}: {v}' for k,v in list(d.items())[-8:]))"

2. Scan the changelog for regressions in the gap

Fetch the changelog and read the entries between the installed version and latest. Look for "Fixed ... regression in X" lines - if a recent build introduced a regression that has not yet been fixed, that's the one to avoid.

curl -sL https://raw.githubusercontent.com/anthropics/claude-code/main/CHANGELOG.md | awk '/## <LATEST>/,/## <INSTALLED>/'

(Substitute the two version numbers.) A release that is mostly "Fixed …" after a noisy one is usually a safe landing spot.

3. Community sentiment (valuable - do this, don't skip it)

GitHub issues (primary - reliable and fetchable)

The most dependable signal. Search recent open bug reports, sorted by reactions, via gh api in a safeclaw container. A version regression shows up as a cluster of high-reaction issues filed right after a release.

docker exec safeclaw-<name> bash -c 'gh api -X GET search/issues \
  -f q="repo:anthropics/claude-code is:issue is:open created:>=<DATE> label:bug" \
  -f sort=reactions -f per_page=25 \
  --jq ".items[] | \"\(.created_at[:10]) +\(.reactions.total_count) c\(.comments) #\(.number) \(.title)\""'

(Set <DATE> to ~3 days before today.) Cross-reference titles against the changelog gap: if a top issue is already addressed by a fix/flag in latest, that build is safer, not riskier. Mostly minor or server-side (API 500/529) issues = quiet release = good sign.

Reddit (secondary - reachable via the DuckDuckGo hop)

r/ClaudeAI version-comparison threads are valuable, but Reddit now hard-blocks every direct automated route - curl (host + container), the WebSearch crawler (denied by user-agent), AND a cold Playwright navigation (network-security challenge page). The reliable way in is the reddit-fetch skill's DuckDuckGo-hop unlock: navigate Playwright to a html.duckduckgo.com/html/?q=site:reddit.com/r/ClaudeAI+... result redirect once, which sets a session cookie, then direct .json navigation works:

https://www.reddit.com/r/ClaudeAI/search.json?q=claude+code+update+broke+OR+regression&restrict_sr=on&sort=new&t=week&limit=25

Apply the heuristics above: a positive or quiet recent-update thread is reassuring; a high-score "X is broken" thread names the build to skip.

4. Recommend

  • If the installed version is in the recent, well-received range and nothing in the gap regressed: stay put, don't chase a release that's only hours old.
  • If there's a known regression in a build, recommend the last good version and npm install -g @anthropic-ai/claude-code@X.Y.Z to pin/rollback.
  • For anyone who's been burned: disable the auto-updater and update deliberately (the repo's setup script does this), rather than religiously tracking @stable.

trang chủ - Wiki
Copyright © 2011-2026 iteam. Current version is 2.155.2. UTC+08:00, 2026-07-08 14:33
浙ICP备14020137号-1 $bản đồ khách truy cập$