furkankoykiran/.claude

GitHub: furkankoykiran/.claude

一个为 Claude Code 提供可复现技能、代理和钩子管理的工具包,通过锁定上游 commit、强制上下文预算和人工审查机制确保配置透明可靠。

Stars: 4 | Forks: 0

# Claude Code Toolkit **一套可复现、可验证的 Claude Code 配置 —— 包含技能、代理、钩子和提供商切换,一键安装。** [![CI](https://static.pigsec.cn/wp-content/uploads/repos/cas/ad/ad5834178f7599af9fdda11629d49cae07f2997beec49821b2920eff5bfd50e7.svg)](https://github.com/furkankoykiran/.claude/actions/workflows/ci.yml "持续集成状态") [![最新发布](https://img.shields.io/github/v/release/furkankoykiran/.claude?sort=semver)](https://github.com/furkankoykiran/.claude/releases/latest "最新发布的版本") [![许可证: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE "本仓库自身代码采用 MIT 许可证") [![平台](https://img.shields.io/badge/platforms-Linux%20%7C%20macOS%20%7C%20Windows%20%7C%20WSL-lightgrey)](docs/getting-started.md "受支持的平台") [入门指南](docs/getting-started.md) · [配置](docs/configuration.md) · [安全](docs/security-model.md) · [目录](docs/catalog-architecture.md) · [常见问题](docs/faq.md)
## 这是什么 一旦接入了技能、代理和钩子,Claude Code 的能力将大幅提升 —— 但从十几个上游仓库中拼凑这些组件、保持它们最新, 以及弄清楚你到底安装了什么,不仅繁琐而且容易出错。 这个工具包负责完成这些拼凑工作,并确保其透明可靠: - **只安装你想要的。** 包含五个插件,可以通过 Claude Code marketplace 单独安装 —— 或者在 Linux、macOS、原生 Windows 或 WSL 上通过一条命令完成全部引导安装。 - **上下文成本是经过测量的,而非凭空期望。** Claude Code 将技能列表的预算限制在 context window 的 2%,并且会*静默*丢弃超出部分的描述,导致这些技能无法被路由。本工具包的整个列表在 CI 中被严格限制在 2,048 个字符 —— 仅相当于 200k token context 允许上限的一半。 - **每个技能都被锁定** 在经过审查的 commit SHA 上,经过许可证检查,并记录了内容摘要 —— 这样你就可以清楚地看到你的机器上安装了什么,以及它们来自哪里。 - **更新永远不会破坏你的工作。** 仅采用快进(Fast-forward)模式;如果某个更新会导致本地修改丢失,它会拒绝执行并提示你,而不是替你自动解决冲突。 - **上游更新以经过审查的 pull requests 方式呈现**,而不是静默覆盖。常规更改会自动合并;任何涉及能力面(hooks、agents、可执行文件、凭据、网络访问)的更改都会暂停并等待人工审查。 - **无遥测,无账户,无服务。** 绝不会进行任何后台数据回传。 ## 快速开始 ### 仅安装插件 如果你只想要技能和代理,并希望它们带有命名空间且能独立更新: ``` /plugin marketplace add furkankoykiran/.claude /plugin install fk-gh-flow@fk-toolkit ``` | 插件 | 功能 | 技能列表占用 | | --- | --- | --- | | `fk-gh-flow` | 寻找值得处理的 issue,将其解决并提交 PR,跟进审查反馈,撰写拟人化的评论 | 746 字符 | | `fk-writing-kit` | 去除草稿中的 AI 痕迹;通过聊天记录、URL 或 GitHub 档案构建博客文章或 LinkedIn 文案 | 819 字符 | | `fk-manim-video` | 带有与动画同步口白旁白的 Manim 动画 | 248 字符 | | `fk-eng-agents` | researcher · planner · code-reviewer · debugger 子代理 | **0** | | `fk-toolkit-ops` | 通过粘贴的配置接入 MCP server;管理工具包更新 | 161 字符 | 插件**不包含 hooks、MCP servers 和可执行文件** —— 只有 skills 和 agents。所有涉及能力面的内容都位于下方的 bootstrap 层中, 你可以在它们运行前进行查看。 ### 整个工具包 引导程序(bootstrap)会额外安装上游技能包、提供商切换器、 安全 hooks 和更新器。 **Linux · macOS · WSL · Git Bash** ``` curl -fsSL https://raw.githubusercontent.com/furkankoykiran/.claude/main/install.sh | bash ``` **Windows (原生 PowerShell)** ``` irm https://raw.githubusercontent.com/furkankoykiran/.claude/main/install.ps1 | iex ``` 原生 Windows 需要 [Git for Windows](https://git-scm.com/download/win) —— 它 捆绑了 Git Bash,用于运行 shell hooks。 重复运行是安全的。安装程序是幂等的且具有容错性:它绝不会 覆盖现有的 `config.json` 或 `settings.json`,并且某个组件 安装失败不会中断其余部分的安装。 **必需:** `git`、`curl`、`bash`(或在 Windows 上的 PowerShell 7+)。 **如果缺失则自动引导安装:** `bun`、`rtk`、`gstack`,用于浏览器技能的 Chromium。 可选组件可以跳过 —— 参见 [安装程序标志](docs/getting-started.md)。 验证安装: ``` bun install --frozen-lockfile && bun run catalog:check ``` ### 更新 ``` fkt check # is there an update? (cached; no network on a cache hit) fkt update # fast-forward, then run migrations ``` `fkt` 绝不会运行 `reset --hard`,绝不会运行 `clean`,也绝不会 替你执行 stash。如果你的检出有未提交的更改或本地提交,它会拒绝执行并 打印出检查这些更改的命令 —— 这个目录保存着你的设置和 记忆,只有你能决定如何处理你在其中做的工作。 包含两个频道:`stable`(默认)跟随带标签的发布版本,并按审查过的 SHA 安装第三方包,因此两台机器能获得字节完全相同的技能; `edge` 跟随 `main` 分支和上游的 `HEAD`。 插件通过 Claude Code 本身进行更新:`/plugin marketplace update fk-toolkit`。 完整详情 —— 迁移、暂停更新、退出机制、安全公告 —— 见 [更新](docs/updates.md)。卸载说明见 [入门指南](docs/getting-started.md)。 ## 你将获得什么 | 组件 | 位置 | 功能 | | --- | --- | --- | | **Plugins** | `skills/fk-*` | `fk-toolkit` marketplace:`fk-gh-flow`、`fk-writing-kit`、`fk-manim-video`、`fk-eng-agents`、`fk-toolkit-ops` | | **Skill packs** | `skills/` | 安装程序获取的上游包,锁定在审查过的提交上 | | **Hooks** | `hooks/` | 编辑时格式化,提交时进行密钥扫描,push 前验证,Docker 卷保护,更新通知 | | **Updater** | `bin/fkt` | 在 `stable` 或 `edge` 频道上进行仅限快进(Fast-forward)的 bootstrap 更新 | | **Providers** | `providers/`, `bin/cc-provider` | 在 Anthropic、NVIDIA、DeepSeek、Kimi、MiniMax、OpenRouter、Z.ai 之间切换 Claude Code | | **Utilities** | `utils/` | 共享的 Python 辅助工具和配置文件感知配置 | | **Catalog** | `catalog/` | 确定性解析器 + 生成器,生成可验证的 skills 目录 | ## 组合工作原理 ``` flowchart LR M["skills-sources.toml
declarative manifest"] --> RES G["git sources"] --> RES["resolver
pin, fetch, verify licence"] R["runtime sources"] -. metadata only .-> RES RES --> L["skills-source.lock.json
catalog/cache"] L --> GEN["generator"] GEN --> OUT["catalog/generated/
catalog, index, digests"] GEN --> D["docs/skills/"] OUT --> PR["automation pull request"] PR --> GATE{"policy gate"} GATE -- routine --> AM["squash auto-merge
after required checks"] GATE -- capability surface --> HUMAN["manual-review-required
held for a human"] AM --> REL["tagged release
with SHA256SUMS"] ``` ## 目录 每个 skill 都从声明的来源解析,锁定在不可变修订版本上, 经过许可证检查,并记录了内容摘要。生成过程是 确定性的 —— 两次运行产生字节完全相同的输出 —— 因此提交的 目录是可验证的,而不是盲目信任的。 来源选择方式: | 模式 | 含义 | 新的上游技能 | | --- | --- | --- | | `all-skills` | 根目录下的每一个 `/SKILL.md` | 自动引入 | | `named` | 仅限列出的技能 | **绝不** —— 仅报告,不添加 | | `subpath` | 位于固定路径的单个技能 | **绝不** —— 报告同级内容 | | `repo-owned` | 在本仓库中提交的内容 | 不适用 | | `runtime` | 由 `claude` CLI、PyPI 或安装程序解析 | 仅元数据 | **仅限元数据** 的来源会发布名称、描述、摘要和不可变 链接,但绝不包含主体内容 —— 这可能是因为上游未授予再分发权,或者该 组件无法从文件中解析得出。 ``` bun run catalog:coverage # what each source contributes, and what is curated out ``` 参见[目录覆盖范围](docs/catalog-coverage.md)和 [目录架构](docs/catalog-architecture.md)。 ## 安全模型 Skills 是 Claude 读取的指令;它们并未被沙箱化。添加来源属于 供应链决策,因此自动化流程会将其作为此类决策对待。 当一项更改引入了凭据引用、 可执行文件或二进制文件、hooks、MCP/LSP config、agents、动态 shell、Bash 或 PowerShell、网络访问或隐藏文件时;或者当现有的 skill *增加了*这些内容,当已经具有高危能力的 skill 被重写了内容时,当 `SKILL.md` 旁边出现或消失了文件时,当工具范围扩大时,当再分发或许可证发生更改时,当源仓库发生更改时,当 skill 被移除或重命名时,或者当批次异常庞大时,该更改将被暂停以进行人工审查。 这道关卡是一个强大的过滤器,而非安全性的绝对证明:它考量的是能力面与出处,而非意图。对不包含严重能力的 skill 进行重写仍会按常规合并。请仔细阅读你在意的任何更改的 diff。 检测并不依赖于内容摘要:相同的字节如果被重新指向另一个仓库或重新授权许可,依然视为一次更改。自动合并状态在每次运行时都会被推倒并重新验证,因此由之前的常规更新开启的合并请求,无法带入后续的敏感更新中。 API keys 仅保存在 git 忽略的文件中;提交钩子会扫描已暂存的内容。 完整详情见[安全模型](docs/security-model.md)。 ## 隐私 这里没有遥测,没有分析,没有账户,也没有任何属于我们的服务。 该工具包仅发起三种出站请求,全部指向你可以在源码中看到的公共端点: | 请求 | 何时发生 | 携带内容 | | --- | --- | --- | | 针对本仓库及锁定上游的 `git ls-remote` / `git fetch` | 安装时,以及最多每 12 小时一次的 `fkt check` | git 发送的内容 | | 一次针对 `security-advisories.tsv` 的 GET 请求 | 伴随更新检查时 | 无身份标识信息 —— 这是一个静态文件,匹配过程在你的机器上完成 | | 任何你选择安装的内容(`bun`、`rtk`、`gstack`、pip 包) | 首次安装时 | 它们自身的处理逻辑;每一个都在[出处](docs/provenance.md)中列出 | `fkt disable` 会停止更新检查。`FKT_OFFLINE=1` 会禁止所有网络访问。 安全公告特意会在 `fkt disable` 后继续生效 —— 关闭“有新版本可用”不应顺带关掉“你当前使用的版本存在已知问题”的提示 —— 并且拥有它们专属的开关。 ## 上下文成本 Claude Code 会在会话开始时,为每个模型可发现的 skill 注入 `name` + `description`,这部分预算被限制在 context window 的 2%。超出此限制后,它会**没有任何警告**地丢弃描述,而仅凭名称列出的 skill 是无法被模型路由到的。 在本工具包拆分插件之前,它的安装会将 54,529 个字符放入该 列表中 —— 相当于 200k token context 预算的 13 倍。大约有五十个 skill 无法被路由,而且系统对此没有任何提示。 ``` bun run catalog:budget ``` 通过 CI 强制限制在 2,048 个字符,并附带按插件、按 skill 的细分数据。 测量方法以及完整的修改前后对比,请见 [Skill 上下文经济学](docs/skill-context-economy.md)。 ## 仓库布局 ``` .claude-plugin/ generated marketplace manifest bin/ executables on PATH (cc-provider, fkt) catalog/ catalog toolchain (src, tests, cache, generated) docs/ documentation — start at docs/README.md hooks/ git and Claude Code hooks memory/ persistent memory files migrations/ versioned bootstrap migrations run by `fkt` providers/ API provider definitions scripts/ maintenance and test scripts skills/ repo-owned plugins (fk-*) and installer-fetched packs utils/ shared Python helpers install.sh installer for Linux/macOS/WSL — public URL, do not move install.ps1 installer for native Windows — public URL, do not move marketplace.toml plugin marketplace source of truth skills-sources.toml declarative source manifest skills-source.lock.json pinned revisions and digests security-advisories.tsv advisory feed consumed by `fkt` VERSION single version source of truth package.json catalog toolchain scripts tsconfig.json TypeScript configuration bun.lock dependency lock CLAUDE.md repository instructions for Claude Code README.md this file docs/ documentation, including the release process and archive CONTRIBUTING.md contribution guide CODE_OF_CONDUCT.md community standards SECURITY.md vulnerability reporting LICENSE MIT, for this repository's own code config.json.example template seeded to config.json on install settings.json.example template seeded to settings.json on install PSScriptAnalyzerSettings.psd1 PowerShell lint configuration ``` 生成的产出物位于 `catalog/generated/` 中,并由 `bun run catalog:generate` 重新构建 —— 切勿手动编辑它们。已发布版本的**资产 名称**保持稳定,无论其源码位于目录树中的哪个位置。 ## 安全 请私下报告漏洞 —— 参见 [SECURITY.md](SECURITY.md)。请勿 公开提交安全报告的 issue。 ## 许可证与致谢 本仓库自身的代码采用 [MIT](LICENSE) 许可。被编入目录和 vendored 的内容 保留其上游许可证;解析器会验证每一个内容,并保留它可能不被允许再分发的主体。 基于以下作者的作品构建:[gstack](https://github.com/garrytan/gstack)、 [Anthropic 的 skills](https://github.com/anthropics/skills)、 [impeccable](https://github.com/pbakaus/impeccable)、 [营销 skills](https://github.com/coreyhaines31/marketingskills)、 [taste-skill](https://github.com/Leonxlnx/taste-skill)、 [Manim skills](https://github.com/adithya-s-k/manim_skill)、 [Karpathy 指南](https://github.com/multica-ai/andrej-karpathy-skills) 以及 [rtk](https://github.com/rtk-ai/rtk)。感谢它们的作者。
标签:AI合规, AI辅助开发, Claude, Cutter, CVE检测, Python安全, SOC Prime, 开发工具, 自动化攻击, 自动化配置, 逆向工具