gangtise-copilot

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Gangtise Copilot

Gangtise Copilot

One-command installer, credential configurator, and diagnostic layer for the full Gangtise (岗底斯投研) OpenAPI skill suite.

针对完整Gangtise(岗底斯投研)OpenAPI技能套件的一键式安装器、凭证配置器与诊断工具。

🚀 One-shot installation (complete flow)

🚀 一站式安装(完整流程)

This is the only section you need to read to go from zero to fully working Gangtise. Follow steps in order.
这是你从零基础到完全使用Gangtise所需阅读的唯一章节。请按顺序执行步骤。

Step 1 — Download this skill to your agent's skills directory

步骤1 — 将此技能下载至你的Agent技能目录

Primary method (git clone):
bash
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
undefined
主要方法(git克隆):
bash
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>/
备用方法(当git克隆超时或不可用时——直接使用GitHub API):
python
undefined

Python one-liner to download and write any file from GitHub:

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)
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:

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 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)")

> **重要提示**:与GitHub的网络连接可能不稳定。如果任何文件下载失败,针对该文件重试最多3次,每次间隔2秒。不要因单个文件失败而终止整个流程。

Step 2 — Register this skill with your agent

步骤2 — 在你的Agent中注册此技能

For OpenClaw: create a symlink in the agent's skills directory and enable it in gateway config:
bash
undefined
对于OpenClaw:在Agent技能目录中创建符号链接,并在网关配置中启用它:
bash
undefined

Find the OpenClaw skills directory

查找OpenClaw技能目录

ls ~/workspace/agent/skills/ # or ls ~/.openclaw/skills/
ls ~/workspace/agent/skills/ # 或 ls ~/.openclaw/skills/

Symlink this skill

创建符号链接

ln -sf <gangtise-copilot-source-dir> <openclaw-skills-dir>/gangtise-copilot
ln -sf <gangtise-copilot-source-dir> <openclaw-skills-dir>/gangtise-copilot

Enable in OpenClaw gateway config (if the agent supports skill entries in config)

在OpenClaw网关配置中启用(如果Agent支持在配置中添加技能条目)

Run: openclaw config set 'skills.entries.gangtise-copilot' '{}'

运行:openclaw config set 'skills.entries.gangtise-copilot' '{}'

Then restart the gateway: sh scripts/restart.sh

然后重启网关:sh scripts/restart.sh

undefined
undefined

Step 3 — Install all 19 Gangtise official skills

步骤3 — 安装全部19款Gangtise官方技能

bash
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):
AgentSkills directory
Claude Code
~/.claude/skills/
Codex
~/.agents/skills/
OpenClaw
~/.openclaw/skills/
or
<agent-workspace>/skills/
If install fails, check
references/installation_flow.md
.
bash
bash <gangtise-copilot-dir>/scripts/install_gangtise.sh --preset full
功能说明:从华为云OBS官方存储桶下载4个ZIP包,解压出19个技能目录,并将它们符号链接到检测到的Agent技能目录(
~/.openclaw/skills/
~/.claude/skills/
等)。
已知Agent技能目录路径(如果自动检测未找到你的目录):
Agent技能目录
Claude Code
~/.claude/skills/
Codex
~/.agents/skills/
OpenClaw
~/.openclaw/skills/
<agent-workspace>/skills/
如果安装失败,请查看
references/installation_flow.md

Step 4 — Configure credentials

步骤4 — 配置凭证

bash
bash <gangtise-copilot-dir>/scripts/configure_auth.sh \
  --access-key <your-accessKey> \
  --secret-key <your-secretAccessKey>
What it does:
  1. Writes
    ~/.config/gangtise/authorization.json
    (mode 600)
  2. Performs live auth call to verify credentials work
  3. Writes
    ~/.GTS_AUTHORIZATION
    runtime token
  4. Creates symlinks from every installed skill's
    scripts/.authorization
    to the shared credential file
⚠️ Critical: After Step 3,
diagnose.sh
may report "19 skill(s) missing .authorization" even if credentials exist. Run Step 4 even when
~/.config/gangtise/authorization.json
already exists —
configure_auth.sh
creates the missing symlinks.
bash
bash <gangtise-copilot-dir>/scripts/configure_auth.sh \
  --access-key <your-accessKey> \
  --secret-key <your-secretAccessKey>
功能说明
  1. 写入
    ~/.config/gangtise/authorization.json
    (权限模式600)
  2. 执行实时认证调用以验证凭证有效性
  3. 写入
    ~/.GTS_AUTHORIZATION
    运行时令牌
  4. 创建符号链接:将每个已安装技能的
    scripts/.authorization
    指向共享凭证文件
⚠️ 关键提示:完成步骤3后,
diagnose.sh
可能会报告"19 skill(s) missing .authorization",即使凭证已存在。即使
~/.config/gangtise/authorization.json
已存在,也要运行步骤4 —
configure_auth.sh
会创建缺失的符号链接。

Step 5 — Verify installation

步骤5 — 验证安装

bash
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
.
bash
bash <gangtise-copilot-dir>/scripts/diagnose.sh
预期输出:9项通过 ✅,0项失败 ❌ —— 全部19个技能已安装,凭证有效,RAG可访问。
如果仍有❌或⚠️,请对照
references/known_issues.md
排查。

Step 6 — Test with a real query

步骤6 — 使用真实查询测试

bash
undefined
bash
undefined

Example: query latest research report for 宁德时代

示例:查询宁德时代的最新研报

Use gangtise-file-client with its report runner:

使用gangtise-file-client及其报告运行器:

cd <gangtise-copilot-dir>/references/
cd <gangtise-copilot-dir>/references/

See skill_registry.md for the exact command per skill

每个技能的具体命令请查看skill_registry.md


---

---

Overview

概述

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:
  1. Installs all 19 official Gangtise skills to Claude Code, OpenClaw, and Codex via a single bundled-download + distribute pipeline.
  2. Walks the user through accessKey + secretAccessKey setup with a live authentication call against
    open.gangtise.com/application/auth/oauth/open/loginV2
    .
  3. Provides a read-only diagnostic script that reports which skills are installed, which credentials are valid, and which capability tiers are reachable.
  4. Exposes preset install modes (
    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.
Gangtise是中国专业的投研数据平台。它发布的OpenAPI涵盖研报、公司公告、会议纪要、首席分析师观点、财务报表、估值指标、OHLC市场数据、股东数据、行业指标,以及一系列预构建的研究工作流技能。其底层API设计精良,但技能生态缺乏可发现性:没有公开清单列出这19个技能,技能以独立ZIP文件形式分布在华为云OBS存储桶中且禁用了列表权限,同时技能存在两种并行命名规则(基础版为
gangtise-<name>
,全功能版为
gangtise-<name>-client
),二者功能集不同。首次使用的用户必须逆向推导出完整的技能清单才能进行安装。
Gangtise Copilot通过一条命令解决这些问题:
  1. 通过捆绑下载+分发管道,将全部19款官方Gangtise技能安装到Claude Code、OpenClaw和Codex。
  2. 引导用户完成accessKey + secretAccessKey设置,并针对
    open.gangtise.com/application/auth/oauth/open/loginV2
    执行实时认证调用。
  3. 提供只读诊断脚本,报告已安装技能、有效凭证及可访问的功能层级。
  4. 提供预设安装模式(
    minimal
    /
    workshop
    /
    full
    ),用户可根据账户许可匹配安装规模 —— 关于为何"最大安装量"不是安全默认值,请查看
    references/known_issues.md
    中的ISSUE-007。
2026年4月运行说明:安装技能后,即使
~/.config/gangtise/authorization.json
已存在,也要运行
configure_auth.sh
。上游CLI脚本还会读取
~/.GTS_AUTHORIZATION
(一个纯运行时令牌文件)。配置器会刷新这两个文件。

Architectural principles (do not violate)

架构原则(不得违反)

This skill is a wrapper layer around the Gangtise OpenAPI skill suite. The wrapper contract is non-negotiable:
  • Never vendor upstream files. This skill directory contains no copy, fork, or excerpt of any Gangtise skill content. When Gangtise ships a new release, users get the new release without any interference from this wrapper — the installer re-downloads from the canonical OBS URL every run.
  • Repairs (if any arise) happen at runtime, not at ship time. This wrapper was distilled from a session that encountered no actual upstream bugs — the friction was discoverability and install orchestration, not broken files. If future upstream bugs arise, they will be added to
    references/known_issues.md
    with runtime repair instructions, not patched at ship time.
  • Always ask before touching upstream files. Modifying any installed
    gangtise-*
    skill directory requires explicit user consent via AskUserQuestion.
  • Teach rather than hide. Every installation step shows the user exactly which skills were downloaded, from where, and where the credential file was saved. This is how users learn to maintain their own installs.
此技能是Gangtise OpenAPI技能套件的包装层。包装契约不可协商:
  • 绝不打包上游文件:此技能目录不包含任何Gangtise技能内容的副本、分支或摘录。当Gangtise发布新版本时,用户无需此包装层干预即可获取新版本 —— 安装器每次运行都会从标准OBS URL重新下载。
  • 修复(若有)仅在运行时进行,而非发布时:此包装层是从无实际上游bug的会话中提炼而来 —— 痛点在于可发现性和安装编排,而非文件损坏。若未来出现上游bug,会将其添加到
    references/known_issues.md
    并提供运行时修复说明,而非在发布时打补丁。
  • 修改上游文件前必须征得用户同意:修改任何已安装的
    gangtise-*
    技能目录需通过AskUserQuestion获得用户明确同意。
  • 授人以渔而非代劳:每个安装步骤都会向用户明确展示下载了哪些技能、来源何处以及凭证文件保存位置。这是用户学习自行维护安装的方式。

What this skill does

此技能的功能

CapabilityEntry pointDetail
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 questionSkill registry below +
references/skill_registry.md
功能入口详情
1. 安装Gangtise技能(默认minimal,可选workshop、full或
--only
自定义子集)
scripts/install_gangtise.sh
查看
references/installation_flow.md
2. 配置accessKey + secretAccessKey凭证
scripts/configure_auth.sh
查看
references/credentials_setup.md
3. 诊断安装状态、凭证有效性及功能层级
scripts/diagnose.sh
查看
references/known_issues.md
4. 查询哪个Gangtise技能可回答特定数据问题下方技能注册表 +
references/skill_registry.md

Routing

路由规则

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"、"install gangtise"、"我想用 gangtise 的数据"、"把 gangtise 的 skill 都装上"一站式安装(上述步骤1–5)
"配 gangtise 的 key"、"configure gangtise credentials"、"gangtise accessKey"、"secretAccessKey"功能2
"gangtise 报错"、"token is invalid"、"接口地址错误"、"gangtise skill 加载失败"、"我的 gangtise 装得不对"功能3
"宁德时代的研报"、"过去30天的首席观点"、"OHLC蜡烛图"、"个股研究报告L2"、"对宁德时代做观点PK"功能4 → 技能注册表 → 调用匹配的上游技能
"帮我从头跑一遍 gangtise"一站式安装(按顺序执行步骤1–5)
若不确定,先从功能3
diagnose.sh
)开始 —— 它是唯一的只读入口,能准确显示当前哪些安装和凭证存在问题。运行它不会产生破坏性副作用。

Capability 1: Install Gangtise skills

功能1:安装Gangtise技能

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.
Gangtise在华为云OBS存储桶上发布了19个独立技能,分为3个捆绑ZIP包加1个独立ZIP包。安装器会下载这4个归档文件,解压出19个技能目录,并将每个目录符号链接到检测到的Agent技能目录中。

Distribution source

分发源

All skills come from the official Gangtise OBS bucket:
https://gts-download.obs.myhuaweicloud.com/skills/
No mirrors. The installer uses this URL directly.
所有技能均来自Gangtise官方OBS存储桶:
https://gts-download.obs.myhuaweicloud.com/skills/
无镜像。安装器直接使用此URL。

Bundle map

捆绑包映射

BundleSizeContains
gangtise-skills-client.zip
160 KBdata-client, kb-client, file-client, file-client-no-download, stockpool-client
gangtise-research.zip
220 KBstock-research, opinion-pk, thematic-research, stock-selector, event-review, interview-outline, announcement-digest, opinion-summarizer, wechat-summary, data-processor
gangtise-skills.zip
118 KBdata (v1.2.0), file, kb — the legacy "minimal" parallel line
gangtise-web-client.zip
8 KBweb-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.
捆绑包大小包含技能
gangtise-skills-client.zip
160 KBdata-client、kb-client、file-client、file-client-no-downloadstockpool-client
gangtise-research.zip
220 KBstock-research、opinion-pk、thematic-research、stock-selector、event-review、interview-outline、announcement-digest、opinion-summarizer、wechat-summary、data-processor
gangtise-skills.zip
118 KBdata(v1.2.0)、file、kb —— 旧版"基础版"并行产品线
gangtise-web-client.zip
8 KBweb-client(独立包,不在任何捆绑包中)
总计:4次HTTP请求 → 19个技能目录。
有两个技能(
gangtise-file-client-no-download
gangtise-stockpool-client
仅存在于
gangtise-skills-client
捆绑包中
—— 它们没有独立ZIP包。如果采用"为每个技能列出独立ZIP包"的简单方法,会完全遗漏这两个技能。完整说明请查看
references/known_issues.md
中的ISSUE-002。

One-command install

一键安装命令

bash
bash scripts/install_gangtise.sh
Flags:
bash
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
bash
bash scripts/install_gangtise.sh
参数:
bash
bash scripts/install_gangtise.sh --preset minimal    # 默认值 —— 通过公共open-*端点安装3个技能
bash scripts/install_gangtise.sh --preset workshop   # minimal的别名(同样3个技能)
bash scripts/install_gangtise.sh --preset full       # 全部19个技能(若无skills-backend ACL,大多数-client技能会失败)
bash scripts/install_gangtise.sh --only data-client,kb-client,file-client  # 自定义子集
bash scripts/install_gangtise.sh --no-openclaw       # 即使检测到OpenClaw也跳过
bash scripts/install_gangtise.sh --target claude-code  # 强制指定单个目标Agent

Preset contents

预设内容

PresetSkillsIntended 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.
fullAll 19 skillsBoth 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.
预设包含技能适用场景
minimal(默认)
gangtise-data
gangtise-file
gangtise-kb
保守安装,适用于任何可认证的账户。仅使用公共
open-*
端点 —— 不受ISSUE-007影响。涵盖OHLC、财务数据、公告、境外研报、RAG检索。
workshop(minimal的别名 —— 同样3个技能)历史预设曾包含7个-client类技能,但这些技能在大多数账户上会被ISSUE-007拦截,导致演示失败。现在该预设指向与minimal相同的3个技能,避免在工作坊中出现问题。
full全部19个技能同时安装两条产品线。适用于探索完整Gangtise技能目录。若你的账户缺少
skills-backend/*
ACL,大多数-client技能会在运行时失败
—— 请先通过ISSUE-007中的诊断确认权限。

Capability 2: Configure credentials

功能2:配置凭证

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):
json
{
  "accessKey": "<your-accessKey>",
  "secretAccessKey": "<your-secretAccessKey>"
}
Shape B — long-term token (advanced, for pre-generated long-lived tokens):
json
{
  "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
bash scripts/configure_auth.sh
It will:
  1. Prompt for accessKey and secretAccessKey (or read from the
    GANGTISE_ACCESS_KEY
    /
    GANGTISE_SECRET_KEY
    environment variables if set).
  2. Write to
    ~/.config/gangtise/authorization.json
    with mode 600.
  3. Perform a live authentication call to
    https://open.gangtise.com/application/auth/oauth/open/loginV2
    to verify the credentials actually work.
  4. Write
    ~/.GTS_AUTHORIZATION
    with the bare runtime token required by upstream CLI scripts.
  5. Create symlinks from every installed skill's local credential file to the shared XDG file.
  6. Report success with the uid + userName returned by the Gangtise auth server.
每个Gangtise技能都需要一个与Python运行时共存的
.authorization
凭证文件,有两种格式:
格式A —— accessKey + secretAccessKey(最常用,自动刷新令牌):
json
{
  "accessKey": "<your-accessKey>",
  "secretAccessKey": "<your-secretAccessKey>"
}
格式B —— 长期令牌(进阶版,用于预生成的长期令牌):
json
{
  "long-term-token": "Bearer <token>"
}
由于19个技能都需要相同的
.authorization
文件,包装层将一个共享文件存储在
~/.config/gangtise/authorization.json
(符合XDG标准,权限模式600),并将每个技能的本地凭证文件符号链接到该共享文件。轮换凭证只需编辑一个文件,而非19个。
运行配置器:
bash
bash scripts/configure_auth.sh
它会:
  1. 提示输入accessKey和secretAccessKey(若已设置
    GANGTISE_ACCESS_KEY
    /
    GANGTISE_SECRET_KEY
    环境变量,则从变量读取)。
  2. 写入
    ~/.config/gangtise/authorization.json
    并设置权限模式600。
  3. 针对
    https://open.gangtise.com/application/auth/oauth/open/loginV2
    执行实时认证调用,验证凭证实际有效性。
  4. 写入
    ~/.GTS_AUTHORIZATION
    ,满足上游CLI脚本所需的纯运行时令牌。
  5. 创建符号链接,将每个已安装技能的本地凭证文件指向共享XDG文件。
  6. 报告成功,并显示Gangtise认证服务器返回的uid + userName。

Credential rotation

凭证轮换

bash
undefined
bash
undefined

Edit one file:

编辑一个文件:

$EDITOR ~/.config/gangtise/authorization.json
$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/configure_auth.sh --verify-only

无需修改其他文件 —— 符号链接仍指向更新后的文件。

Capability 3: Diagnose install state

功能3:诊断安装状态

bash
bash scripts/diagnose.sh
The diagnostic script is strictly read-only. It checks:
  • Which of the 19 skills are present in each detected agent's
    skills/
    directory
  • Whether
    ~/.config/gangtise/authorization.json
    exists with mode 600
  • Whether each skill's local credential file is a valid symlink pointing at the shared XDG file
  • Whether the stored credentials pass a live authentication call (short probe that only needs
    oauth/open/loginV2
    )
  • Whether the canonical RAG endpoint responds to a minimal query (scoped liveness check — proves the credential has
    rag
    scope, not just auth scope)
Exit codes:
  • 0
    — all healthy
  • 1
    — one or more issues need user action
  • 2
    — 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.
bash
bash scripts/diagnose.sh
诊断脚本严格只读。它会检查:
  • 检测到的每个Agent的
    skills/
    目录中存在哪些19个技能
  • ~/.config/gangtise/authorization.json
    是否存在且权限模式为600
  • 每个技能的本地凭证文件是否为指向共享XDG文件的有效符号链接
  • 存储的凭证是否通过实时认证调用(仅需
    oauth/open/loginV2
    的简短探测)
  • 标准RAG端点是否响应最小查询(限定范围的存活检查 —— 证明凭证具有
    rag
    权限,而非仅认证权限)
退出码:
  • 0
    —— 全部正常
  • 1
    —— 存在一个或多个需要用户操作的问题
  • 2
    —— 诊断本身失败(网络错误、无网络连接等)
如果诊断报告问题,请将输出与
references/known_issues.md
对照。每个报告的问题都对应特定的修复章节。

Capability 4: Skill registry — "which skill answers my data question?"

功能4:技能注册表 —— "哪个技能能回答我的数据问题?"

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:
这是包装层的隐性价值。Gangtise的19个技能构成一个二维矩阵(数据层级 × 操作类型),但缺乏清晰文档。使用下表将用户问题路由到正确的技能:

Data-layer skills (6)

数据层技能(6个)

Want to…Upstream skillInvoke
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-clientdedicated 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 stockgangtise-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 datagangtise-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 namegangtise-data-client
security
runner with
-k {name}
List sector constituent stocks by theme or industrygangtise-data-client
block_component
runner with
-k {theme}
List index members by categorygangtise-data-client
index
runner with
-k {index type}
Search the open web for public information not in Gangtise's internal KBgangtise-web-client
web
runner with
-q {query}
See
references/skill_registry.md
for the full per-runner parameter reference and cross-skill composition examples.
想要…上游技能调用方式
查询知识库中的语义内容(研报+观点+纪要)gangtise-kb-client使用
kb
运行器,带
-q
查询参数,可选
--file-types
/
--securities
参数
按类型+日期+标的列出文档(研报、公告、摘要、观点、路演)gangtise-file-client按文档类型使用专用运行器(report / opinion / summary / announcement / investment_calendar / foreign_report / internal_report / wechat_message)
获取A股或港股的OHLC日K线gangtise-data-client使用
quote
运行器,带
--securities {name}
参数和
-sd
/
-ed
日期范围
获取财务报表(利润表/资产负债表/现金流量表指标)gangtise-data-client使用
financial
运行器,带
--securities {name}
参数和
--indicators
参数
获取估值指标(PE/PS/PB/PEG + 历史分位数)gangtise-data-client使用
valuation
运行器,带
--securities {name}
参数
获取主营业务构成(按产品/行业/地区)gangtise-data-client使用
main_business
运行器,带
--securities {name}
参数和
--classify-method
参数
获取股东/前十大持有人数据gangtise-data-client使用
shareholder
运行器,带
--securities {name}
参数
获取宏观/行业指标(GDP、CPI、汽车销量、大宗商品价格)gangtise-data-client使用
industry_indicator
运行器,带
-k {keyword}
参数
按名称查找标的标准代码gangtise-data-client使用
security
运行器,带
-k {name}
参数
按主题或行业列出板块成分股gangtise-data-client使用
block_component
运行器,带
-k {theme}
参数
按类别列出指数成分股gangtise-data-client使用
index
运行器,带
-k {index type}
参数
在开放网络中搜索Gangtise内部知识库未包含的公开信息gangtise-web-client使用
web
运行器,带
-q {query}
参数
完整的运行器参数参考和跨技能组合示例请查看
references/skill_registry.md

Workflow-layer skills (10) — higher-order research workflows

工作流层技能(10个)—— 高阶研究工作流

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
这些技能编排数据层技能,形成端到端的研究工作流。它们会生成符合Gangtise专业投研模板的Markdown+HTML报告,并内置合规约束(禁止使用"买入/卖出/目标价/推荐"等表述)。
想要…使用技能
生成L1-L4深度的个股研报(L1=1页框架,L4=完整机构覆盖报告)
gangtise-stock-research
对投资论点进行对抗分析("为看多观点唱反调")
gangtise-opinion-pk
进行主题/行业研究(驱动因素分析、列举阶段、选股、业绩验证)
gangtise-thematic-research
根据研究标准筛选股票
gangtise-stock-selector
为市场事件撰写800-1000字的事件回顾/复盘
gangtise-event-review
生成公司会议大纲(3步工作流:数据→议题→问题)
gangtise-interview-outline
跟踪股票池近期公告并生成每日摘要
gangtise-announcement-digest
汇总首席分析师近期观点
gangtise-opinion-summarizer
将微信群讨论记录转换为结构化投研日报
gangtise-wechat-summary
获取设计自定义数据处理工作流的方法指导
gangtise-data-processor

Utility skills (3)

工具类技能(3个)

SkillPurpose
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-stockpool-client
创建/重命名/删除股票池;添加或移除股票。仅在
gangtise-skills-client.zip
中分发。
gangtise-file-client-no-download
file-client
的变体,禁用下载功能 —— 适用于只读环境或合规敏感场景。
旧版
gangtise-data
/
gangtise-file
/
gangtise-kb
旧版基础并行产品线。
data
为v1.2.0版本,仅支持严格类型的标的代码(无名称解析)。仅当用户需要更小的功能 footprint 时安装。
完整的技能脚本目录、版本及功能矩阵请查看
references/skill_registry.md

What this skill refuses to do

此技能拒绝执行的操作

  • Vendor, fork, or mirror any
    gangtise-*
    skill's content into this directory — only the canonical OBS URLs are referenced.
  • Pin an upstream skill version in SKILL.md — the installer always downloads the current OBS artifact.
  • Silently patch upstream files — every modification path (if any are ever added) would require explicit consent via AskUserQuestion.
  • Hardcode personal accessKey / secretAccessKey values.
  • Make investment recommendations or trading decisions. Gangtise's own skills already enforce these compliance rules; this wrapper strictly delegates.
  • 将任何
    gangtise-*
    技能的内容打包、分支或镜像到此目录 —— 仅引用标准OBS URL。
  • 在SKILL.md中固定上游技能版本 —— 安装器始终下载当前OBS工件。
  • 静默修补上游文件 —— 任何修改路径(若未来添加)都需通过AskUserQuestion获得明确同意。
  • 硬编码个人accessKey/secretAccessKey值。
  • 提供投资建议或交易决策。Gangtise自身技能已执行这些合规规则;此包装层严格委托执行。

File layout

文件结构

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)
gangtise-copilot/
├── SKILL.md                         # 本文档
├── scripts/
│   ├── install_gangtise.sh          # 下载捆绑包→暂存→分发
│   ├── configure_auth.sh            # 设置+验证凭证
│   └── diagnose.sh                  # 只读健康报告
├── references/
│   ├── installation_flow.md         # 安装器工作原理、参数参考、故障排除
│   ├── credentials_setup.md         # accessKey/secretAccessKey、XDG路径、存活检查
│   ├── skill_registry.md            # 完整的技能功能矩阵
│   ├── known_issues.md              # 两条并行产品线、仅捆绑包存在的技能及其他注意事项
│   └── best_practices.md            # 如何有效组合stock-research+opinion-pk+data-client
└── config-template/
    └── authorization.json.example   # 凭证文件模板(仅占位符值)