Token导航 LogoToken导航

Agent Skill · 开发

typescript-effect(TypeScript effect 命令行)

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

typescript-effect 是开发类 Agent Skill,可用宿主为 Codex、Claude、Cursor、Gemini CLI,通过GitHub 仓库获取,权限为需要联网;许可证信息还不明确,第三方扫描已通过,按安装量在开发类的 21,746 个 Skill 里排第 19,805。

总安装 256周安装 11GitHub Stars 2下载 90核验 2026-05-01

安装说明

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

安装方式

通过对话安装

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

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

命令行安装

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

skills.shnpx skills
npx skills add https://github.com/bsamiee/parametric_forge --skill typescript-effect

这个 Skill 是做什么的

开发类 Skill 面向写代码、改代码和排查问题,一般会读写仓库文件,部分还会执行构建或测试命令。

typescript-effect 用于处理 GitHub 仓库、Issue、Pull Request 和代码协作信息。它适合在 Codex、Claude、Cursor、Gemini CLI 中围绕仓库状态、代码变更或协作事项进行整理。可结合来源仓库、安装命令和原始 README 继续核验具体用法。

安装命令:npx skills add https://github.com/bsamiee/parametric_forge --skill typescript-effect 适用于 Codex、Claude、Cursor、Gemini CLI 等宿主环境

来源仓库内路径:skills/typescript-effect

上手步骤

4 步
  1. 1

    确认自己的宿主工具

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

  2. 2

    拿到安装命令

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

  3. 3

    安装后重启宿主

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

  4. 4

    按最小权限试用

    它需要需要联网,先在测试目录或测试账号里跑,确认没问题再放到正式项目。

常见问题

6 条

typescript-effect 怎么安装?

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

typescript-effect 支持哪些 AI 工具?

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

typescript-effect 需要什么权限?

权限级别是需要联网。该 Skill 可能需要联网访问来源站点、仓库或外部 API;具体网络访问范围需要结合源码和 README 复核。

typescript-effect 是免费的吗?

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

typescript-effect 用的人多吗?

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

typescript-effect 安全吗?

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

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

值得选的地方

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

先想清楚的地方

  • 许可证没有明确标注,能不能商用、能不能再分发都不确定。
  • 第三方目录整理,版本更新和行为细节以来源仓库为准。

适不适合你

更适合

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

不太适合

  • 需要明确授权才能用到公司项目里的场景。
  • 需要厂商级技术支持和 SLA 的生产系统。

开发类 Skill 对比

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

技能审查员 · OpenClaw

8,779,018986操作浏览器MIT-0通过
ontology

本体论 · OpenClaw

6,636,960576只读MIT-0通过
entra-app-registration

内部应用程序注册 · Codex、Claude

6,631,872764接触敏感数据未明确通过
entra-app-registration

内部应用程序注册 · Codex、Claude

3,757,680201接触敏感数据未明确通过
nano-banana-pro

纳米香蕉专业版 · OpenClaw

3,526,898364接触敏感数据MIT-0有提醒
typescript-effect

TypeScript effect 命令行 · 本页

2562需要联网未明确通过

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

SKILL.md 原文

[H1][TYPESCRIPT-EFFECT]

Dictum: *Six pillars govern TypeScript generation—algorithmic, parametric, polymorphic, functional, expressive, typed.*

Generate TypeScript code adhering to Effect ecosystem patterns.

Pillars:

  1. Algorithmic — Derive values from frozen B constant
  2. Parametric — Expose tuning via factory parameters
  3. Polymorphic — Select implementation via dispatch tables
  4. Functional-Monadic — Chain via Effect/Option pipelines
  5. Expression-Centric — Ternaries, implicit returns, no blocks
  6. Strong-Typed — Branded types via @effect/schema

File Structure:

// --- [TYPES] -----------------------------------------------------------------
// --- [SCHEMA] ----------------------------------------------------------------
// --- [CONSTANTS] -------------------------------------------------------------
// --- [PURE_FUNCTIONS] --------------------------------------------------------
// --- [DISPATCH_TABLES] -------------------------------------------------------
// --- [EFFECT_PIPELINE] -------------------------------------------------------
// --- [ENTRY_POINT] -----------------------------------------------------------
// --- [EXPORT] ----------------------------------------------------------------

[CRITICAL]:

  • [NEVER] any — use branded types.
  • [NEVER] let/var — use const only.
  • [NEVER] if/else — use dispatch tables or ternaries.
  • [NEVER] for/while — use .map, .filter, Effect.
  • [NEVER] try/catch — use Effect error channel.
  • [NEVER] Default exports — use named exports (except *.config.ts).

[1][ALGORITHMIC]

Dictum: *Derive values from base constant via formula—zero hardcoded literals.*

Single frozen B constant per file. ALL values derive from B properties.

const B = Object.freeze({
  fontSize: 16,
  ratio: 1.333,
} as const);

const derive = (step: number): number => B.fontSize * B.ratio ** step;

const scale = Object.freeze({
  sm: derive(-1),  // 12px = 16 * 1.333^-1
  md: derive(0),   // 16px = 16 * 1.333^0
  lg: derive(1),   // 21px = 16 * 1.333^1
} as const);

[IMPORTANT]:

  • [ALWAYS] Define ONE B constant with Object.freeze().
  • [ALWAYS] Express derivations as inline calculations—formula IS the code.
  • [ALWAYS] Trace every value to B through visible arithmetic.
  • [NEVER] Numeric literals outside B constant.

[2][PARAMETRIC]

Dictum: *Expose tuning at call-site via factory parameters—zero buried controls.*

Factory functions accept partial config; merge with B defaults.

const B = Object.freeze({
  timeoutMs: 5000,
  maxAttempts: 3,
} as const);

const createRetry = (overrides: Partial<typeof B> = {}) =>
  Object.freeze({
    config: { ...B, ...overrides },
    execute: <T>(fn: () => Promise<T>): Promise<T> => fn(),
  });

// Call-site tuning
const fast = createRetry({ timeoutMs: 1000 });
const resilient = createRetry({ maxAttempts: 5 });

[IMPORTANT]:

  • [ALWAYS] Defaults in B; overrides at call-site.
  • [ALWAYS] Factory returns frozen object.
  • [NEVER] Hardcode tunable values in implementation.

[3][POLYMORPHIC]

Dictum: *Select implementation via keyed dispatch—zero conditional branching.*

Dispatch tables replace if/else/switch. Discriminated unions enable exhaustiveness.

import { Schema } from 'effect';

const Shape = Schema.Union(
  Schema.Struct({ kind: Schema.Literal('circle'), radius: Schema.Number }),
  Schema.Struct({ kind: Schema.Literal('rect'), width: Schema.Number, height: Schema.Number }),
);
type Shape = typeof Shape.Type;

const handlers = {
  circle: (s: Extract<Shape, { kind: 'circle' }>) => Math.PI * s.radius ** 2,
  rect: (s: Extract<Shape, { kind: 'rect' }>) => s.width * s.height,
} as const satisfies Record<Shape['kind'], (s: never) => number>;

const area = (shape: Shape): number => handlers[shape.kind](shape as never);

[IMPORTANT]:

  • [ALWAYS] Route via handlers[discriminant](data).
  • [ALWAYS] Enforce exhaustiveness with satisfies Record<Discriminant, Handler>.
  • [NEVER] if/else for type-based dispatch.
  • [NEVER] switch/case statements.

[4][FUNCTIONAL-MONADIC]

Dictum: *Chain operations via typed channels—Effect for async/failable, Option for nullable.*

Effect pipelines replace try/catch. Option wraps nullable values.

import { Effect, Option, pipe } from 'effect';

class ValidationError {
  readonly _tag = 'ValidationError';
  constructor(readonly reason: string) {}
}

const processUser = (raw: { name?: string }) =>
  pipe(
    Option.fromNullable(raw.name),
    Option.map((name) => name.trim().toUpperCase()),
    Option.match({
      onNone: () => Effect.fail(new ValidationError('Missing name')),
      onSome: (name) => Effect.succeed({ name }),
    }),
  );
// Effect<{ name: string }, ValidationError, never>

[IMPORTANT]:

  • [ALWAYS] Wrap nullable with Option.fromNullable().
  • [ALWAYS] Sequence via pipe() and Effect.flatMap().
  • [ALWAYS] Track outcomes in type parameters: Effect<A, E, R>.
  • [NEVER] try/catch or throw in Effect code.
  • [NEVER] Null checks or optional chaining in logic.

[5][EXPRESSION-CENTRIC]

Dictum: *Write code as value-producing expressions—zero statement blocks.*

Ternaries for conditionals. Implicit returns for arrows. Chain expressions.

// Expression: ternary + implicit return
const classify = (age: number): string =>
  age < 18 ? 'minor' : age < 65 ? 'adult' : 'senior';

// Expression: chained transforms
const processUsers = (users: ReadonlyArray<{ name: string; age: number }>) =>
  users
    .filter((u) => u.age >= 18)
    .map((u) => ({ ...u, name: u.name.toUpperCase() }))
    .sort((a, b) => a.name.localeCompare(b.name));

[IMPORTANT]:

  • [ALWAYS] Ternary ?: over if/else.
  • [ALWAYS] Arrow with implicit return: x => x * 2.
  • [ALWAYS] Compose via .map(), .filter(), pipe().
  • [NEVER] Curly braces {} in single-expression contexts.
  • [NEVER] Intermediate let bindings.

[6][STRONG-TYPED]

Dictum: *Brand domain primitives via @effect/schema—zero raw primitives in domain logic.*

Branded types enforce semantic boundaries. Schema validates at system edges.

import { Schema } from 'effect';

// Branded primitive
const UserId = Schema.String.pipe(Schema.brand('UserId'));
type UserId = typeof UserId.Type;

// Validated struct
const UserSchema = Schema.Struct({
  id: UserId,
  email: Schema.String.pipe(Schema.pattern(/@/)),
  age: Schema.Number.pipe(Schema.positive()),
});
type User = typeof UserSchema.Type;

// Decode at boundary
const parseUser = Schema.decodeUnknownSync(UserSchema);

[IMPORTANT]:

  • [ALWAYS] Brand domain primitives: UserId, Email, IsoDate.
  • [ALWAYS] Validate at system boundaries (API input, external data).
  • [ALWAYS] Derive type from schema: typeof Schema.Type.
  • [NEVER] any or unbranded primitives in domain logic.

[7][VALIDATION]

Dictum: *Gates prevent non-compliant code generation.*

[VERIFY] Before completing any TypeScript generation:

  • B Constant: Single frozen B with all tunable values.
  • Derivation: All computed values trace to B via visible arithmetic.
  • Factory: createX pattern with partial config merging B.
  • Dispatch: Handlers object with satisfies Record<K, Handler>.
  • Effect: Async/failable operations use Effect pipelines.
  • Option: Nullable values wrapped with Option.fromNullable().
  • Expression: No if/else blocks; ternaries and implicit returns.
  • Branded: Domain primitives use Schema.brand().
  • Sections: File uses canonical section separators.
  • Exports: Named exports only (except *.config.ts).

[CRITICAL] Violation detected → Refactor before completion.

平台分布

Codex

36.04%
按下载量换算32

Claude

27.93%
按下载量换算25

Cursor

18.37%
按下载量换算17

Gemini CLI

9.68%
按下载量换算9

安全审计

Gen Agent Trust Hub

通过

Socket

通过

Snyk

通过

权限和风险

需要联网

该 Skill 可能需要联网访问来源站点、仓库或外部 API;具体网络访问范围需要结合源码和 README 复核。

安装前确认

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

继续浏览同类 Skills