Token导航 LogoToken导航

Agent Skill · 前端设计

logistics-adapters(物流适配器)

logistics-adapters 用于处理 GitHub 仓库、Issue、Pull Request 和代码协作信息,适合在 Codex、Claude、Cursor、Gemini CLI 中需要围绕仓库状态、代码变更或协作事项进行整理时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

logistics-adapters 是前端设计类 Agent Skill,可用宿主为 Codex、Claude、Cursor、Gemini CLI,通过GitHub 仓库获取,权限为接触敏感数据;许可证信息还不明确,第三方扫描已通过,按安装量在前端设计类的 10,216 个 Skill 里排第 8,413。

总安装 288周安装 12GitHub Stars 6下载 96核验 2026-05-01

安装说明

本站只整理中文说明,不托管安装包,也不代用户安装。
GitHub
许可证
unknown

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:logistics-adapters(物流适配器)
来源仓库:https://github.com/rytass/utils
仓库路径:skills/logistics-adapters
安装命令:
npx skills add https://github.com/rytass/utils --skill logistics-adapters
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 npx skills 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

skills.shnpx skills
npx skills add https://github.com/rytass/utils --skill logistics-adapters

这个 Skill 是做什么的

前端设计类 Skill 关注页面结构、视觉规范和组件写法,输出通常是可运行的界面代码。

logistics-adapters 用于处理 GitHub 仓库、Issue、Pull Request 和代码协作信息。适合在 Codex、Claude、Cursor、Gemini CLI 中围绕仓库状态、代码变更或协作事项进行整理。通过 npx skills add 命令从指定 GitHub 仓库安装并使用。

安装前需确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写操作。适用宿主包括 Codex、Claude、Cursor、Gemini CLI,接入前应确认版本、权限和运行环境要求。

来源仓库内路径:skills/logistics-adapters

上手步骤

4 步
  1. 1

    确认自己的宿主工具

    公开资料标注支持 Codex、Claude、Cursor、Gemini CLI;先确认自己用的是其中之一,再按对应工具的 Skills 目录放置。

  2. 2

    拿到安装命令

    可以直接复制的命令是 npx skills add https://github.com/rytass/utils --skill logistics-adapters;命令里的占位符换成自己的路径或密钥再执行。

  3. 3

    安装后重启宿主

    命令执行完要完全退出宿主工具再打开,让新装的 Skill 被重新扫描到,否则列表里可能看不到。

  4. 4

    按最小权限试用

    它需要接触敏感数据,先在测试目录或测试账号里跑,确认没问题再放到正式项目。

常见问题

6 条

logistics-adapters 怎么安装?

在终端执行 npx skills add https://github.com/rytass/utils --skill logistics-adapters。装完完全退出宿主工具再打开,让它重新扫描本地 Skill。

logistics-adapters 支持哪些 AI 工具?

公开资料标注支持 Codex、Claude、Cursor、Gemini CLI。其他工具只要能读取本地 Skill 目录,一般也能手动放进去,但要自己确认触发方式是否一致。

logistics-adapters 需要什么权限?

权限级别是接触敏感数据。该 Skill 可能接触密钥、Token、环境变量或敏感配置,应进入高风险复核队列,默认不自动发布。

logistics-adapters 是免费的吗?

公开资料没有标注明确许可证,收费和商用限制都无法确认。正式使用前请到来源仓库核对授权说明。

logistics-adapters 用的人多吗?

公开数据是累计安装 288 次,近一周安装 12 次,下载 96 次,GitHub 6 星。这些数字来自第三方目录统计,只能当作热度参考,不代表质量或安全性。

logistics-adapters 安全吗?

第三方扫描结果为通过,但这只覆盖已知的静态检查项,不能替代自己读一遍源码和安装命令。

值得选的地方和要先想清楚的地方

值得选的地方

  • 同时适配 4 种工具,换客户端不用重新找替代品。
  • 第三方扫描已通过,常见的高风险行为没有命中。

先想清楚的地方

  • 需要接触敏感数据,装到常用环境前要先评估影响面。
  • 许可证没有明确标注,能不能商用、能不能再分发都不确定。
  • 第三方目录整理,版本更新和行为细节以来源仓库为准。

适不适合你

更适合

  • 已经在用 Codex,想直接扩展它能力的人。
  • 需要处理前端设计类任务、又不想每次都手写提示词的人。

不太适合

  • 环境里有大量密钥、凭证,不方便给第三方 Skill 读取的人。
  • 需要明确授权才能用到公司项目里的场景。
  • 需要厂商级技术支持和 SLA 的生产系统。

前端设计类 Skill 对比

6 个同类
Skill总安装GitHub 星权限许可证扫描
frontend-design

前端设计 · Codex、Claude

8,823,360126,072只读MIT通过
vercel-composition-patterns

Vercel 组合模式 · Codex、Claude

3,858,81625,893需要联网MIT通过
vercel-react-native-skills

Vercel React native skills 前端 · Codex、Claude

2,468,66425,878只读MIT通过
adapt

adapt 搜索 · Codex、Claude

2,027,04023,125操作浏览器未明确通过
bolder

bolder 分析 · Codex、Claude

2,004,28823,130只读未明确通过
logistics-adapters

物流适配器 · 本页

2886接触敏感数据未明确通过

按安装量取同分类前几名;数字来自第三方目录统计,只作热度参考,不代表质量结论。

SKILL.md 原文

Taiwan Logistics Adapters (台灣物流適配器)

Overview

@rytass/logistics 系列套件提供統一的台灣物流服務整合介面,支援包裹追蹤、訂單建立和狀態管理。

套件清單

套件說明功能
@rytass/logistics基礎介面定義統一的物流服務介面
@rytass/logistics-adapter-tcat黑貓宅急便包裹追蹤(HTML 爬蟲)
@rytass/logistics-adapter-ctc中華宅配包裹追蹤 + 訂單管理(REST API)

Quick Start

安裝

# 黑貓宅急便
npm install @rytass/logistics-adapter-tcat

# 中華宅配
npm install @rytass/logistics-adapter-ctc

黑貓宅急便追蹤

import { TCatLogisticsService, TCatLogistics } from '@rytass/logistics-adapter-tcat';

const logistics = new TCatLogisticsService(TCatLogistics);

// 追蹤單一包裹
const [result] = await logistics.trace('800978442950');
console.log(result.statusHistory);
// [{ date: '2024-01-15 14:30', status: 'DELIVERED', businessPremise: '台北營業所' }]

// 批量追蹤
const results = await logistics.trace(['800978442950', '903404283301']);

中華宅配追蹤與建單

⚠️ 安全警告:預設的 CtcLogistics 配置包含測試用的 API Token,請勿用於生產環境。務必使用您自己的 API Token。
import { CtcLogisticsService, CtcLogistics } from '@rytass/logistics-adapter-ctc';

// 使用預設設定(必須替換 apiToken)
const logistics = new CtcLogisticsService({
  ...CtcLogistics,
  apiToken: process.env.CTC_API_TOKEN!, // ⚠️ 必須替換為您的 API Token
});

// 追蹤包裹
const [result] = await logistics.trace('TRACKING-001');

// 建立託運單
const order = await logistics.create({
  senderCompany: '寄件公司',
  senderAddress: '台北市中正區重慶南路一段122號',
  senderMobile: '0912345678',
  receiverCompany: '收件公司',
  receiverContactName: '收件人',
  receiverAddress: '台北市信義區信義路五段7號',
  receiverMobile: '0987654321',
  paidCode: '客戶宅配',
});

console.log(order.shippingNumber); // 託運單號
console.log(order.trackingNumber); // 查件單號

// 更新託運單(需指定 trackingNumber)
const updatedOrder = await logistics.update({
  trackingNumber: 'TRACKING-001', // 必填:查件單號
  senderCompany: '新寄件公司',
  senderAddress: '台北市中正區重慶南路一段122號',
  senderMobile: '0912345678',
  receiverCompany: '新收件公司',
  receiverContactName: '新收件人',
  receiverAddress: '台北市信義區信義路五段7號',
  receiverMobile: '0987654321',
  paidCode: '客戶宅配',
});

CTC 建單/更新選項

interface CreateOrUpdateCtcLogisticsOptions {
  // 基本資訊
  trackingNumber?: string;        // 查件單號(create 時可選,update 時必填)
  customerDepartmentId?: number;  // 客戶部門 ID
  customerDepartmentUnitId?: number; // 客戶部門單位 ID

  // 寄件人資訊
  senderCompany: string;          // 寄件人公司名稱(必填)
  senderContactName?: string;     // 寄件人聯絡人(預設同 senderCompany)
  senderAddress: string;          // 寄件人地址(必填)
  senderTel?: string;             // 寄件人市話(與 senderMobile 二擇一)
  senderMobile?: string;          // 寄件人手機(與 senderTel 二擇一)
  senderRemark?: string;          // 寄件人備註

  // 收件人資訊
  receiverCompany: string;        // 收件人公司名稱(必填)
  receiverContactName: string;    // 收件人聯絡人(必填)
  receiverAddress: string;        // 收件人地址(必填)
  receiverTel?: string;           // 收件人市話(與 receiverMobile 二擇一)
  receiverMobile?: string;        // 收件人手機(與 receiverTel 二擇一)
  receiverRemark?: string;        // 收件人備註

  // 運送資訊
  paidCode: string;                // 付款代碼(必填)
  shipmentContent?: string;       // 貨物內容(預設 '貨件')
  transportation?: string;        // 運輸工具(預設 'truck')
  shippingMethod?: string;        // 運送方式(預設 'land')
  payer?: string;                 // 費用支付方(預設 'receiver')
  shippingTime?: string;          // 送件時效(預設 'regular')
  paymentMethod?: string;         // 結算方式(預設 'monthly')
  quantity?: number;              // 件數(預設 1)
  weight?: number;                // 重量(預設 1)
  volume?: number;                // 材積(預設 1)
}

// 回傳結果
interface CtcLogisticsDto {
  trackingNumber?: string;  // 查件單號
  shippingNumber: string;   // 託運單號
}

Core Concepts

統一介面 LogisticsService

所有適配器都實現 LogisticsService 介面:

// 基礎物流介面
interface LogisticsInterface<T = LogisticsBaseStatus> {
  reference?: T;
  url: string;
}

// LogisticsService 介面(泛型約束較複雜)
interface LogisticsService<LogisticsType extends LogisticsInterface<LogisticsStatus<LogisticsType>>> {
  trace(request: string): Promise<LogisticsTraceResponse<LogisticsType>[]>;
  trace(request: string[]): Promise<LogisticsTraceResponse<LogisticsType>[]>;
}

追蹤結果結構

// 泛型約束較複雜,簡化理解:K 代表物流介面類型
interface LogisticsTraceResponse<K extends LogisticsInterface<LogisticsStatus<K>>> {
  logisticsId: string;                          // 追蹤號碼
  statusHistory: LogisticsStatusHistory<K['reference']>[];  // 狀態歷史
}

interface LogisticsStatusHistory<T> {
  date: string;    // 時間
  status: T;       // 狀態代碼(字串)
}

// T-CAT 擴展(包含營業所資訊)
interface TCatLogisticsStatusHistory<T> extends LogisticsStatusHistory<T> {
  businessPremise: string;  // 營業所名稱
}

// CTC 擴展(包含狀態碼)
interface CtcLogisticsStatusHistory<T> extends LogisticsStatusHistory<T> {
  statusCode: CtcLogisticsStatusEnum;  // 狀態碼(數字)
}

// CTC 狀態碼枚舉
enum CtcLogisticsStatusEnum {
  CREATED = 10,              // 新單
  PICKUP_EXCEPTION = 29,     // 取件異常
  PICKED_UP = 30,            // 已取件
  PICKUP_ARRIVED_AT_HUB = 40, // 取件到站
  IN_TRANSIT = 50,           // 轉運中
  TRANSIT_ARRIVED_AT_HUB = 60, // 轉運到站
  SHELVED = 65,              // 回站保管
  DELIVERING = 70,           // 配送中
  DELIVERY_EXCEPTION = 75,   // 配送異常
  DELIVERED = 80,            // 配送完成
  EMPTY_TRIP = 87,           // 空趟
  COMPLETED = 88,            // 正常結案
  NOTIFICATION_SENT = 91,    // 通知完成
  CANCELLED = 99,            // 取消
}

基本狀態類型

type LogisticsBaseStatus = 'DELIVERED' | 'DELIVERING' | 'SHELVED';

// 完整的 T-CAT 狀態類型(Union Type)
type TCatLogisticsStatus =
  | 'DELIVERED'
  | 'TRANSPORTING'
  | 'DELIVERING'
  | 'COLLECTING'
  | 'CONSOLIDATED'
  | 'PICKUP_CANCELED'
  | 'SHELVED'
  | 'INVESTIGATING'
  | 'DELIVERING_TODAY'
  | 'FAIL_PICKUP'
  | 'AWAY_HOME'
  | LogisticsBaseStatus;

// 完整的 CTC 狀態類型(Union Type)
type CtcLogisticsStatus =
  | 'CREATED'
  | 'PICKUP_EXCEPTION'
  | 'PICKED_UP'
  | 'PICKUP_ARRIVED_AT_HUB'
  | 'IN_TRANSIT'
  | 'TRANSIT_ARRIVED_AT_HUB'
  | 'SHELVED'
  | 'DELIVERING'
  | 'DELIVERY_EXCEPTION'
  | 'DELIVERED'
  | 'EMPTY_TRIP'
  | 'COMPLETED'
  | 'NOTIFICATION_SENT'
  | 'CANCELLED';

額外導出類型

// 錯誤介面
interface LogisticsErrorInterface {
  readonly code: string;
  readonly message?: string;
}

// T-CAT 物流介面(可自訂 statusMap)
interface TCatLogisticsInterface<T> extends LogisticsInterface<T> {
  ignoreNotFound: boolean;
  statusMap: (html: string, id: string) => LogisticsStatusHistory<T>[];
}

// CTC 物流介面
interface CtcLogisticsInterface<T> extends LogisticsInterface<T> {
  apiToken: string;
  ignoreNotFound?: boolean;
}

// CTC 狀態對照表常數(可用於自訂映射)
const CtcLogisticsStatusMap: { [key: string]: CtcLogisticsStatus };

// CTC API 回應(內部使用,但有導出)
interface CreateOrUpdateCtcLogisticsResponse {
  success: boolean;
  error: string;
  shipping_number: string;
  tracking_number?: string;
}

Common Patterns

T-CAT 狀態對照表

狀態中文原文說明
DELIVERED順利送達包裹已成功送達
TRANSPORTING轉運中包裹在轉運途中
DELIVERING配送中配送員正在派送
COLLECTING取件中正在取件
CONSOLIDATED已集貨已完成集貨
PICKUP_CANCELED取消取件取件已取消
SHELVED暫置營業所暫存於營業所
INVESTIGATING調查處理中正在調查處理
DELIVERING_TODAY配送中(當配下車) (當配上車)當日配送中
FAIL_PICKUP未順利取件,請洽客服中心取件失敗
AWAY_HOME不在家.公司行號休息收件人不在

CTC 狀態對照表

狀態狀態碼說明
CREATED10新單
PICKUP_EXCEPTION29取件異常
PICKED_UP30已取件
PICKUP_ARRIVED_AT_HUB40取件到站
IN_TRANSIT50轉運中
TRANSIT_ARRIVED_AT_HUB60轉運到站
SHELVED65回站保管
DELIVERING70配送中
DELIVERY_EXCEPTION75配送異常
DELIVERED80配送完成
EMPTY_TRIP87空趟
COMPLETED88正常結案
NOTIFICATION_SENT91通知完成
CANCELLED99取消

錯誤處理

import { LogisticsError, ErrorCode } from '@rytass/logistics';

// ErrorCode 枚舉
enum ErrorCode {
  NOT_IMPLEMENTED = '999',   // 未實作
  NOT_FOUND_ERROR = '101',   // 找不到包裹
  PERMISSION_DENIED = '102', // 無權查詢
  INVALID_PARAMETER = '103', // 無效參數
}

try {
  const result = await logistics.trace('INVALID');
} catch (error) {
  if (error instanceof LogisticsError) {
    switch (error.code) {
      case ErrorCode.NOT_FOUND_ERROR:
        console.error('找不到此包裹');
        break;
      case ErrorCode.PERMISSION_DENIED:
        console.error('無權查詢');
        break;
      case ErrorCode.INVALID_PARAMETER:
        console.error('無效的追蹤號碼');
        break;
      case ErrorCode.NOT_IMPLEMENTED:
        console.error('功能未實作');
        break;
    }
  }
}

忽略找不到錯誤

// T-CAT 預設 ignoreNotFound: false
const tcatLogistics = new TCatLogisticsService({
  ...TCatLogistics,  // 預設 ignoreNotFound: false
  ignoreNotFound: true,  // 找不到時返回空歷史而非拋出錯誤
});

// CTC 預設 ignoreNotFound: true
const ctcLogistics = new CtcLogisticsService({
  ...CtcLogistics,  // 預設 ignoreNotFound: true
  apiToken: 'your-token',
  ignoreNotFound: false,  // 改為找不到時拋出錯誤
});

API Reference

詳細 API 文件請參閱 reference.md。

Troubleshooting

T-CAT 追蹤失敗

T-CAT 使用 HTML 爬蟲,可能因網站改版而失效。檢查:

  1. 網站是否可正常訪問
  2. HTML 結構是否變更
  3. 考慮使用自訂 statusMap 函數

CTC API 認證失敗

  1. 確認 apiToken 正確
  2. 檢查 API 端點 URL
  3. 確認帳戶有對應權限

批量追蹤效能

批量追蹤使用 Promise.all,注意:

  • 避免一次追蹤過多包裹
  • 考慮分批處理大量請求
  • 設置適當的超時時間

平台分布

Codex

33.3%
按下载量换算32

Claude

31.44%
按下载量换算30

Cursor

21.2%
按下载量换算20

Gemini CLI

9.35%
按下载量换算9

安全审计

Gen Agent Trust Hub

通过

Socket

通过

Snyk

通过

权限和风险

接触敏感数据

该 Skill 可能接触密钥、Token、环境变量或敏感配置,应进入高风险复核队列,默认不自动发布。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。目前只有一个公开来源,建议同时核对源仓库。

继续浏览同类 Skills