One-command installer for the entire Gangtise investment research API ecosystem. The platform publishes 19 skills across data retrieval, research, and utilities, but they're scattered in undocumented ZIP files on Huawei Cloud with no public manifest. This wrapper downloads all of them in one shot, configures your accessKey/secretAccessKey credentials with live verification, symlinks everything into your agent's skills directory, and runs diagnostics to catch the common gotchas like missing authorization files or tier mismatches. The install script handles network flakiness to GitHub and includes fallback methods. Worth it if you have a Gangtise account and don't want to reverse-engineer their skill inventory yourself.
npx -y skills add daymade/claude-code-skills --skill gangtise-copilot --agent claude-codeInstalls into .claude/skills of the current project.
One-command installer, credential configurator, and diagnostic layer for the full Gangtise (岗底斯投研) OpenAPI skill suite.
This is the only section you need to read to go from zero to fully working Gangtise. Follow steps in order.
Primary method (git clone):
git clone --depth 1 https://github.com/daymade/claude-code-skills.git /tmp/gangtise-repo
cp -r /tmp/gangtise-repo/gangtise-copilot <your-agent-skills-dir>/
Fallback method (when git clone times out or is unavailable — use GitHub API directly):
# Python one-liner to download and write any file from GitHub:
import urllib.request, json, base64, os
def fetch_github_file(repo_path, local_path):
url = f"https://api.github.com/repos/daymade/claude-code-skills/contents/{repo_path}"
req = urllib.request.Request(url, headers={"User-Agent": "Mozilla/5.0"})
d = json.loads(urllib.request.urlopen(req, timeout=20).read())
content = base64.b64decode(d["content"]).decode("utf-8")
os.makedirs(os.path.dirname(local_path), exist_ok=True)
open(local_path, "w").write(content)
return len(content)
# Download all files:
for path, local in [
("gangtise-copilot/SKILL.md", "<skills-dir>/gangtise-copilot/SKILL.md"),
("gangtise-copilot/scripts/install_gangtise.sh", "<skills-dir>/gangtise-copilot/scripts/install_gangtise.sh"),
("gangtise-copilot/scripts/configure_auth.sh", "<skills-dir>/gangtise-copilot/scripts/configure_auth.sh"),
("gangtise-copilot/scripts/diagnose.sh", "<skills-dir>/gangtise-copilot/scripts/diagnose.sh"),
("gangtise-copilot/references/installation_flow.md", "<skills-dir>/gangtise-copilot/references/installation_flow.md"),
("gangtise-copilot/references/credentials_setup.md", "<skills-dir>/gangtise-copilot/references/credentials_setup.md"),
("gangtise-copilot/references/skill_registry.md", "<skills-dir>/gangtise-copilot/references/skill_registry.md"),
("gangtise-copilot/references/known_issues.md", "<skills-dir>/gangtise-copilot/references/known_issues.md"),
("gangtise-copilot/references/best_practices.md", "<skills-dir>/gangtise-copilot/references/best_practices.md"),
("gangtise-copilot/config-template/authorization.json.example", "<skills-dir>/gangtise-copilot/config-template/authorization.json.example"),
]:
size = fetch_github_file(path, local)
print(f"OK {path} → {local} ({size} bytes)")
Important: Network to GitHub may be unstable. If any file fails, retry the specific file up to 3 times with a 2-second delay between attempts. Do NOT abort the whole process for a single file failure.
For OpenClaw: create a symlink in the agent's skills directory and enable it in gateway config:
# Find the OpenClaw skills directory
ls ~/workspace/agent/skills/ # or ls ~/.openclaw/skills/
# Symlink this skill
ln -sf <gangtise-copilot-source-dir> <openclaw-skills-dir>/gangtise-copilot
# Enable in OpenClaw gateway config (if the agent supports skill entries in config)
# Run: openclaw config set 'skills.entries.gangtise-copilot' '{}'
# Then restart the gateway: sh scripts/restart.sh
bash <gangtise-copilot-dir>/scripts/install_gangtise.sh --preset full
What it does: Downloads 4 ZIP bundles from the official Huawei Cloud OBS bucket, extracts 19 skill directories, and symlinks them into detected agent skills directories (~/.openclaw/skills/, ~/.claude/skills/, etc.).
Known agent skills directory paths (if auto-detection misses yours):
| Agent | Skills directory |
|---|---|
| Claude Code | ~/.claude/skills/ |
| Codex | ~/.agents/skills/ |
| OpenClaw | ~/.openclaw/skills/ or <agent-workspace>/skills/ |
If install fails, check references/installation_flow.md.
bash <gangtise-copilot-dir>/scripts/configure_auth.sh \
--access-key <your-accessKey> \
--secret-key <your-secretAccessKey>
What it does:
~/.config/gangtise/authorization.json (mode 600)~/.GTS_AUTHORIZATION runtime tokenscripts/.authorization to the shared credential file⚠️ Critical: After Step 3,
diagnose.shmay report "19 skill(s) missing .authorization" even if credentials exist. Run Step 4 even when~/.config/gangtise/authorization.jsonalready exists —configure_auth.shcreates the missing symlinks.
bash <gangtise-copilot-dir>/scripts/diagnose.sh
Expected output: 9 pass ✅, 0 fail ❌ — all 19 skills present, credentials valid, RAG reachable.
If any ❌ or ⚠️ remains, cross-reference with references/known_issues.md.
# Example: query latest research report for 宁德时代
# Use gangtise-file-client with its report runner:
cd <gangtise-copilot-dir>/references/
# See skill_registry.md for the exact command per skill
Gangtise is a Chinese professional investment-research data platform. It publishes an OpenAPI that covers research reports, company announcements, meeting summaries, chief analyst opinions, financial statements, valuation metrics, OHLC market data, shareholder data, industry indicators, and a catalog of pre-built research workflow skills. The underlying API is well-designed, but the skill ecosystem is not discoverable: there is no public manifest listing the 19 skills, the skills are distributed as independent ZIP files on a Huawei Cloud OBS bucket with listing permission disabled, and the skills live in two parallel naming conventions (gangtise-<name> for the minimal line, gangtise-<name>-client for the full-capability line) that carry different feature sets. A first-time user has to reverse-engineer the complete skill inventory before they can install it.
Gangtise Copilot solves this in one command:
open.gangtise.com/application/auth/oauth/open/loginV2.minimal / workshop / full) so users can match the install size to what their account license actually permits — see ISSUE-007 in references/known_issues.md for why "biggest install" is not the safe default.Runtime note from April 2026 usage: after installing skills, run configure_auth.sh even if ~/.config/gangtise/authorization.json already exists. Upstream CLI scripts also read ~/.GTS_AUTHORIZATION, a bare runtime token file. The configurator refreshes both files.
This skill is a wrapper layer around the Gangtise OpenAPI skill suite. The wrapper contract is non-negotiable:
references/known_issues.md with runtime repair instructions, not patched at ship time.gangtise-* skill directory requires explicit user consent via AskUserQuestion.| Capability | Entry point | Detail |
|---|---|---|
1. Install Gangtise skills (minimal default, workshop alias, full, or --only custom) | scripts/install_gangtise.sh | See references/installation_flow.md |
| 2. Configure accessKey + secretAccessKey credentials | scripts/configure_auth.sh | See references/credentials_setup.md |
| 3. Diagnose install state, credential validity, and capability tiers | scripts/diagnose.sh | See references/known_issues.md |
| 4. Look up which Gangtise skill answers a specific data question | Skill registry below + references/skill_registry.md | — |
When this skill is triggered, classify the user's intent and jump to the corresponding capability:
| User says something like… | Go to |
|---|---|
| "装 gangtise"、"install gangtise"、"我想用 gangtise 的数据"、"把 gangtise 的 skill 都装上" | One-shot installation (Step 1–5 above) |
| "配 gangtise 的 key"、"configure gangtise credentials"、"gangtise accessKey"、"secretAccessKey" | Capability 2 |
| "gangtise 报错"、"token is invalid"、"接口地址错误"、"gangtise skill 加载失败"、"我的 gangtise 装得不对" | Capability 3 |
| "宁德时代的研报"、"过去 30 天的首席观点"、"OHLC 蜡烛图"、"个股研究报告 L2"、"对宁德时代做观点 PK" | Capability 4 → skill registry → invoke the matching upstream skill |
| "帮我从头跑一遍 gangtise" | One-shot installation (Step 1–5 in sequence) |
When in doubt, start with Capability 3 (diagnose.sh) — it is the only read-only entry point and it surfaces exactly which installs and credentials are currently blocked. Running it never has a destructive side effect.
Gangtise publishes 19 independent skills on a Huawei Cloud OBS bucket. They are organized into 3 bundle ZIPs plus 1 standalone ZIP. The installer downloads the 4 archives, extracts the 19 skill directories, and symlinks each one into the detected agents' skills directories.
All skills come from the official Gangtise OBS bucket:
https://gts-download.obs.myhuaweicloud.com/skills/
No mirrors. The installer uses this URL directly.
| Bundle | Size | Contains |
|---|---|---|
gangtise-skills-client.zip | 160 KB | data-client, kb-client, file-client, file-client-no-download, stockpool-client |
gangtise-research.zip | 220 KB | stock-research, opinion-pk, thematic-research, stock-selector, event-review, interview-outline, announcement-digest, opinion-summarizer, wechat-summary, data-processor |
gangtise-skills.zip | 118 KB | data (v1.2.0), file, kb — the legacy "minimal" parallel line |
gangtise-web-client.zip | 8 KB | web-client (standalone, not in any bundle) |
Total: 4 HTTP requests → 19 skill directories.
Two skills (gangtise-file-client-no-download and gangtise-stockpool-client) only exist inside the gangtise-skills-client bundle — they do not have standalone ZIPs. A naive "list the standalone ZIP for each skill" approach would miss them entirely. See references/known_issues.md ISSUE-002 for the full explanation.
bash scripts/install_gangtise.sh
Flags:
bash scripts/install_gangtise.sh --preset minimal # default — 3 skills via public open-* endpoints
bash scripts/install_gangtise.sh --preset workshop # alias for minimal (same 3 skills)
bash scripts/install_gangtise.sh --preset full # all 19 skills (most -client will fail without skills-backend ACL)
bash scripts/install_gangtise.sh --only data-client,kb-client,file-client # custom subset
bash scripts/install_gangtise.sh --no-openclaw # skip OpenClaw even if detected
bash scripts/install_gangtise.sh --target claude-code # force single target
| Preset | Skills | Intended for |
|---|---|---|
| minimal (default) | gangtise-data, gangtise-file, gangtise-kb | Conservative install that works on any account that can authenticate. Uses public open-* endpoints only — immune to ISSUE-007. Covers OHLC, financials, announcements, foreign reports, RAG retrieval. |
| workshop | (alias for minimal — same 3 skills) | Historical preset bundled 7 -client-heavy skills, but those are blocked by ISSUE-007 on most accounts and produce a broken live demo. The preset now points at the same 3 skills as minimal so it can no longer footgun a workshop. |
| full | All 19 skills | Both lines side-by-side. Useful for exploring the full Gangtise catalog. Most -client skills will fail at runtime if your account lacks skills-backend/* ACL — confirm with the diagnostic in ISSUE-007 first. |
Every Gangtise skill needs an .authorization credential file colocated with its Python runtime, in one of two shapes:
Shape A — accessKey + secretAccessKey (most common, auto-refreshes tokens):
{
"accessKey": "<your-accessKey>",
"secretAccessKey": "<your-secretAccessKey>"
}
Shape B — long-term token (advanced, for pre-generated long-lived tokens):
{
"long-term-token": "Bearer <token>"
}
Because 19 skills each need the same .authorization file, the wrapper stores one shared file at ~/.config/gangtise/authorization.json (XDG standard, mode 600) and symlinks every skill's local credential file to it. Rotating credentials means editing one file, not 19.
Run the configurator:
bash scripts/configure_auth.sh
It will:
GANGTISE_ACCESS_KEY / GANGTISE_SECRET_KEY environment variables if set).~/.config/gangtise/authorization.json with mode 600.https://open.gangtise.com/application/auth/oauth/open/loginV2 to verify the credentials actually work.~/.GTS_AUTHORIZATION with the bare runtime token required by upstream CLI scripts.# Edit one file:
$EDITOR ~/.config/gangtise/authorization.json
# Re-verify against the live server:
bash scripts/configure_auth.sh --verify-only
No other files need to change — the symlinks still point at the updated file.
bash scripts/diagnose.sh
The diagnostic script is strictly read-only. It checks:
skills/ directory~/.config/gangtise/authorization.json exists with mode 600oauth/open/loginV2)rag scope, not just auth scope)Exit codes:
0 — all healthy1 — one or more issues need user action2 — diagnostic itself failed (network error, no internet, etc.)If diagnose reports issues, cross-reference the output against references/known_issues.md. Each reported issue maps to a specific remediation section.
This is the non-obvious value of the wrapper. Gangtise's 19 skills form a two-dimensional matrix (data tier × operation type) that is not clearly documented. Use this table to route a user question to the right skill:
| Want to… | Upstream skill | Invoke |
|---|---|---|
| Query semantic content across knowledge base (reports + opinions + minutes) | gangtise-kb-client | kb runner with -q query + optional --file-types / --securities |
| List documents by type + date + security (reports, announcements, summaries, opinions, roadshows) | gangtise-file-client | dedicated runners per document type (report / opinion / summary / announcement / investment_calendar / foreign_report / internal_report / wechat_message) |
| Pull OHLC daily candles for an A-share or HK stock | gangtise-data-client | quote runner with --securities {name} + -sd / -ed date range |
| Pull financial statements (income / balance / cash flow indicators) | gangtise-data-client | financial runner with --securities {name} + --indicators |
| Pull valuation metrics (PE / PS / PB / PEG + historical percentiles) | gangtise-data-client | valuation runner with --securities {name} |
| Pull main business composition (by product / industry / region) | gangtise-data-client | main_business runner with --securities {name} + --classify-method |
| Pull shareholder / top-holder data | gangtise-data-client | shareholder runner with --securities {name} |
| Pull macro / industry indicators (GDP, CPI, vehicle sales, commodity prices) | gangtise-data-client | industry_indicator runner with -k {keyword} |
| Look up security standard codes by name | gangtise-data-client | security runner with -k {name} |
| List sector constituent stocks by theme or industry | gangtise-data-client | block_component runner with -k {theme} |
| List index members by category | gangtise-data-client | index runner with -k {index type} |
| Search the open web for public information not in Gangtise's internal KB | gangtise-web-client | web runner with -q {query} |
See references/skill_registry.md for the full per-runner parameter reference and cross-skill composition examples.
These skills orchestrate the data-layer skills into end-to-end research workflows. They produce Markdown + HTML reports following Gangtise's professional investment-research templates and built-in compliance guardrails (no "买入 / 卖出 / 目标价 / 推荐" language).
| Want to… | Use |
|---|---|
| Generate a stock research report at L1-L4 depth (L1 = 1-page framework, L4 = full institutional coverage) | gangtise-stock-research |
| Do adversarial analysis on an investment thesis ("play devil's advocate for this long call") | gangtise-opinion-pk |
| Do thematic / sector research (driver analysis, enumeration phase, stock screening, performance check) | gangtise-thematic-research |
| Screen stocks based on research criteria | gangtise-stock-selector |
| Write an 800-1000 word event review / post-mortem for a market event | gangtise-event-review |
| Generate a company-meeting outline (3-step workflow: data → topics → questions) | gangtise-interview-outline |
| Track recent announcements for a stock pool and produce a daily digest | gangtise-announcement-digest |
| Summarize a chief analyst's recent opinions | gangtise-opinion-summarizer |
| Turn a WeChat chat-group discussion log into a structured investment daily | gangtise-wechat-summary |
| Get methodology guidance on how to design a custom data-processing workflow | gangtise-data-processor |
| Skill | Purpose |
|---|---|
gangtise-stockpool-client | Create / rename / delete a stock pool; add or remove stocks from it. Only distributed inside gangtise-skills-client.zip. |
gangtise-file-client-no-download | Variant of file-client that disables the download capability — useful in read-only environments or compliance-sensitive contexts. |
Legacy gangtise-data / gangtise-file / gangtise-kb | The older minimal parallel line. data is v1.2.0 with strictly-typed security codes (no name resolution). Only install if the user wants the smaller feature footprint. |
See references/skill_registry.md for the full per-skill script catalog, versions, and capability matrix.
gangtise-* skill's content into this directory — only the canonical OBS URLs are referenced.gangtise-copilot/
├── SKILL.md # This file
├── scripts/
│ ├── install_gangtise.sh # Download bundles → stage → distribute
│ ├── configure_auth.sh # Set up + verify credentials
│ └── diagnose.sh # Read-only health report
├── references/
│ ├── installation_flow.md # How the installer works, flag reference, troubleshooting
│ ├── credentials_setup.md # accessKey / secretAccessKey, XDG paths, liveness check
│ ├── skill_registry.md # Complete per-skill capability matrix
│ ├── known_issues.md # Two parallel product lines, bundle-only skills, and other gotchas
│ └── best_practices.md # How to combine stock-research + opinion-pk + data-client effectively
└── config-template/
└── authorization.json.example # Credential file template (placeholder values only)
sickn33/antigravity-awesome-skills
moizibnyousaf/ai-agent-skills
github/awesome-copilot