Token导航 LogoToken导航TokenDH.com
开发需要联网github未标认证来源可访问许可证需确认审计通过

fractal-tree-file-structure分形树文件结构

Agent Skill

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

总安装

424

周安装

17

GitHub Stars

7

下载量

137
CodexClaudeCursorGemini CLI

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

2

许可证

unknown

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

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

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

命令行安装

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

skills.shnpx skills
npx skills add https://github.com/kachkaev/reusable-stuff --skill fractal-tree-file-structure

简介

fractal-tree-file-structure 用于处理 GitHub 仓库、Issue、Pull Request 和代码协作信息。

  • 适合在 Codex、Claude、Cursor、Gemini CLI 中围绕仓库状态和协作事项进行整理。
  • 可通过 npx skills add 命令从指定仓库安装并使用。
  • 安装前需确认权限范围、维护状态及是否触发联网或文件操作。
  • 建议结合原始 README 核验具体用法和功能边界。

SKILL.md

Fractal tree file structure

This project follows a fractal tree approach to file organization, where the structure of any part mirrors the whole. This self-similar organization allows confident navigation without needing to understand the entire codebase.

Core principles

  • Recursive structure: Every directory follows the same organizational patterns, creating predictable navigation at any depth. Developers should not need to learn the entire codebase structure to contribute meaningfully to any section.
  • No circular dependencies: Imports must form a directed acyclic graph. Circular import chains turn the fractal tree into a generic graph, breaking the tree's integrity and causing runtime issues.
  • Organic growth: Start with a single file; extract to subdirectories only when complexity demands it. No boilerplate structure upfront. Group resources by functional purpose, never by file "shape" (no project-wide components/, hooks/, or utils/ folders).
  • Encapsulation: Resources in a subdirectory are internal to the parent file unless explicitly re-exported. A shapes/ directory is "owned" by shapes.ts. Direct imports from nested levels are prohibited—each sub-tree exports resources that can only be imported on the next level up.
  • Contextual sharing: Common logic lives at the closest common ancestor ("fork" in the tree). The shared/ directory exists at the src/ level because multiple entrypoints need it. Place shared logic as deep in the tree as possible while still serving all dependents.
  • Present-state focus: Structure reflects current reality, not anticipated future needs. Refactor freely as usage patterns evolve. This eliminates over-engineering and enables formal linting enforcement.

Practical rules

Naming

All files and folders use kebab-case for cross-platform compatibility with case-sensitive filesystems. Enforced via unicorn/filename-case.

No index files

Avoid index.ts files that enable implicit folder imports. They cause path ambiguity where ./foo could resolve to both foo.ts and foo/index.ts, and they hurt ESM compatibility.

Files as mini-libraries

Each file acts as a self-contained "mini-library" with cohesive exports serving a common semantic purpose. If a file contains only one export, name the file after that export. Avoid default exports unless externally required.

Outgrown files become sub-trees

When a file grows unwieldy, extract logic into a sibling subdirectory bearing the original filename:

my-app.ts → my-app.ts (keeps public API)
          → my-app/
              ├── config.ts
              ├── lifecycle.ts
              ├── lifecycle/
              │   ├── something.ts
              │   └── something-else.ts
              └── helpers.ts

Only my-app.ts imports from the my-app/ directory, and only lifecycle.ts imports from the lifecycle/ directory – each file owns its namespace. If my-app.ts becomes unused, delete it together with its internal folder safely.

Relative paths within workspaces

All imports within a workspace use relative paths. Avoid mixing path alias systems (e.g. @/foo) with relative imports, as this creates inconsistency. (This project uses @/ aliases for the src/ root as a convention.)

shared/ folder convention

Shared resources between sub-trees go into path/to/common-parent/shared/. Think of shared/ folders as lightweight node_modules/. Contents of parent-level shared/ folders remain accessible, but sub-tree shared/ folders are internal to that sub-tree.

Multiple entry points

Projects may have several entry points (pages, API handlers, scripts, tests). Keep their names distinct from mini-libraries using suffixes: do-something.script.ts, xyz.test.tsx. Entry points access shared resources but remain outside core logic.

Colocate unit tests

Place unit tests beside the files they cover: foo.ts pairs with foo.test.ts. Integration and end-to-end tests live in separate directories outside the source tree root.

Exceptions are permitted

Partial adoption works. Gradually migrate from leaves toward the root. Imperfect implementation still provides benefits by clarifying dependencies in sections of larger codebases.

Scoped directories with @ prefix

Directories prefixed with @ group related utilities under a namespace, similar to npm scoped packages:

src/shared/
├── @foo/
|  ├── a.ts
|  └── b.ts
├── @bar/
|  ├── m.ts
|  └── n.ts
├── x.ts
└── y.ts

This prevents naming collisions and clearly signals "this is a utility namespace, not a feature."

Import rules

As a consequence of encapsulation, imports should only target "public" resources:

// ✓ Correct: import from the mini-library entry point
import { something } from "../../../shared/foo.ts";
import { other } from "../../../shared/@scope/bar.ts";

// ✗ Incorrect: import from internal files (owned by their parent)
import { internal } from "../../../shared/foo/helpers.ts";
import { deep } from "../../../shared/@scope/bar/internal.ts";

// ✗ Incorrect: import from a scope directly (like npm, scopes aren't packages)
import { wrong } from "../../../shared/@scope";

Organic growth example

A real project evolves step by step. Starting with a single file:

example.ts

Extract when necessary:

example.ts
example/
├── do-x.ts
└── do-x.test.ts

Add shared logic between extracted modules:

example.ts
example/
├── shared/
│   └── do-common-thing.ts
├── do-x.ts
└── do-y.ts

When a second entry point (example-2.ts) needs something previously nested, promote it to the closest common ancestor:

shared/
└── bar.ts
example.ts
example/
├── shared/
│   └── do-common-thing.ts
├── do-x.ts
└── do-y.ts
example-2.ts

Each step reflects actual code relationships without predicting future needs.

Anti-patterns

  • Do not group files by type/shape rather than function (components/, hooks/, utils/)
  • Do not use index.ts files enabling implicit folder resolution and path synonyms
  • Avoid default exports unless required by third-party
  • Do not over-engineer structures for hypothetical future needs
  • Do not prematurely split files before maintenance issues emerge (they may not)
  • Do not import from a sub-tree's internal files (bypassing encapsulation)

适合场景

01

用户想查找某类 Agent Skill 时

02

需要根据任务场景推荐可安装能力包时

03

需要对比不同来源的安装命令和来源信息时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

展示第三方安全扫描或审计结果

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

Codex

36.71%
按下载量换算50

Claude

29.42%
按下载量换算40

Cursor

16.64%
按下载量换算23

Gemini CLI

9.6%
按下载量换算13

安全审计

Gen Agent Trust Hub

通过

Socket

通过

Snyk

通过

权限和风险

需要联网

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

安装前确认

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

来源信息

继续浏览同类 Skills