agentleFS
Destynova2Destynova2/cli-code-skills/cli-forge-tree/SKILL.md

cli-forge-tree

Skill5 starsChanged 8 months agoMITView on GitHub

Use this skill whenever the user wants to visualize, generate, audit, or scaffold a project directory structure. Triggers include: 'project structure', 'folder structure', 'directory layout', 'tree', 'arborescence', 'scaffold', 'init project', 'organize my files', 'naming conventions', or any request to understand or create how files and folders should be organized in a codebase. Also triggers when someone says 'create a new project', 'bootstrap', 'init', or asks 'where should I put this file'. Use for any language or framework. Do NOT use for file system operations unrelated to project organization (like disk cleanup or backup scripts).

  • Reads credentials

1 other project uses a version of this, 1 of them edited.

Adopted by

Most recently taken up by

The file

We split this skill into the rules it gives an agent

9 rules. About 0 are common, 3 are distinctive, and 6 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈3

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 6

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    Read ../gotchas.md: before producing output to avoid known pitfalls.

    line 21
  2. Very specific:

    Read references/conventions.md for detailed naming rules, depth guidelines, and cross-cutting folders.

    line 25
  3. Very specific:

    Exceptions: Follow ecosystem conventions when universal (Cargo.toml, package.json, __init__.py, lib.rs).

    line 36
  4. Distinctive:

    Always show the tree in annotated format:

    line 76
  5. Very specific:

    Every folder gets a # comment — 3-6 words max

    line 91
  6. Very specific:

    Use the exact ├── / └── / │ box-drawing characters

    line 93
  7. Distinctive:

    Visualize: always show the annotated tree in conversation

    line 125
  8. Distinctive:

    Scaffold: create directories and placeholder files on the filesystem

    line 126
  9. Very specific:

    If the readme skill is also being used, feed the annotated tree into Tier 3 "Project Structure"

    line 128

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Optimization: This skill uses on-demand loading. Heavy content lives in references/ and is loaded only when needed.

Language rule: Skill instructions are written in English. When generating user-facing output, detect the project's primary language (from README, comments, docs, commit messages) and produce the output in that language. If the project is bilingual, ask the user which language to use before proceeding.

Project Tree — Structure & Scaffold

Visualize, audit, or scaffold project directory structures with human-readable naming that any skill level can navigate.

Core Principles

  • Read ../gotchas.md before producing output to avoid known pitfalls.

Core Conventions (Summary)

Read references/conventions.md for detailed naming rules, depth guidelines, and cross-cutting folders.

RuleExample
lowercase-kebab-case for folders & filesapi-gateway/, user-service.ts
UPPER_CASE only for root meta-filesREADME.md, LICENSE
dot-prefix for config/hidden files.env, .gitignore
Max 3 levels before needing justificationsrc/api/handlers/ ok, deeper = rethink
Descriptive, short, no redundancydocs/ not documentation-files/
Plural for collectionstests/, scripts/

Exceptions: Follow ecosystem conventions when universal (Cargo.toml, package.json, __init__.py, lib.rs).

Workflow

Step 1 — Detect or Ask

If a project exists — read the root directory and detect archetype:

SignalArchetype
Cargo.tomlrust
go.modgo
package.jsonjs/ts
pyproject.toml / setup.pypython
*.tfterraform
Chart.yaml / helmfile.yamlhelm
kustomization.yamlkustomize (check for flux-system/ → flux)
Containerfile / Dockerfileoci-container
*.container / *.kubepodman-quadlet
site.yml / playbooks/ / roles/ansible
docker-compose*.ymldocker-compose
*.sh + no other codeshell-scripts
flake.nixnix
Multiple of the abovemonorepo

Then: display the current tree (annotated), highlight issues, suggest improvements.

If no project or empty directory — use ask_user_input QCM:

  • Q1: "What are you building?" (Library, CLI, API, Infra, Full-stack, Monorepo, Other)
  • Q2: "Primary language/stack?"
  • Q3: "Extras to include?" (Docker, CI/CD, Docs, Nix, Benchmarks, Examples)

Step 2 — Generate or Audit

Generate mode (new project): Read references/archetypes.md for the full template matching the detected archetype. Scaffold using mkdir -p and touch for placeholder files.

Audit mode (existing project): display annotated tree, then list naming violations, missing standard files, suggested reorganization.

Step 3 — Display

Always show the tree in annotated format:

project-name/
├── src/                    # Source code
│   ├── lib.rs              # Library entry point
│   └── handlers/           # Request handlers
├── tests/                  # Integration tests
├── docs/                   # Documentation
├── Cargo.toml              # Manifest & deps
├── README.md               # Project landing page
└── .gitignore              # Git exclusions

Annotation rules:

  • Every folder gets a # comment — 3-6 words max
  • Files only get comments if their role isn't obvious from the name
  • Use the exact ├── / └── / │ box-drawing characters
  • Max 2 levels shown by default. Deeper = collapsed with ...

Quality Scoring — Structure Health Score (SHS)

SHS Formula

SHS = Σ(wᵢ × sᵢ) / Σ(wᵢ) × 10

Checklist Items

#ItemWeightWhat to check
1Naming consistency5All folders follow same convention
2Depth control4No folder deeper than 4 levels without justification
3Standard files present4README, LICENSE, .gitignore exist at root
4Archetype fit3Structure matches detected language/framework conventions
5Separation of concerns4Source, tests, docs, config in distinct locations
6No orphan files3No loose files in wrong directories
7Entry point clarity3Main/index file is obvious
8Test colocation2Tests near or mirroring source structure

Scoring: 0.0 = absent/violated, 0.25 = poor, 0.5 = inconsistent, 0.75 = good, 1.0 = excellent

Thresholds: 8+ clean, 6-8 minor issues, 4-6 needs reorganization, <4 structural problems

Output the SHS table at the end of the tree analysis.

Output

  • Visualize: always show the annotated tree in conversation
  • Scaffold: create directories and placeholder files on the filesystem
  • Audit: list issues + suggested fixes, then show the "ideal" tree side-by-side
  • If the readme skill is also being used, feed the annotated tree into Tier 3 "Project Structure"

Dynamic Handoffs

Condition detectedRecommendWhy
Files in wrong directories/cli-audit-syncCheck if docs reference old paths
No CONTRIBUTING.md found/cli-forge-docGenerate contributing guide
Deep nesting detected/cli-audit-tangleCheck if structure reflects code coupling

Rule: Recommend, don't auto-execute.

Integration with other cli-* skills

SkillRelation
/cli-forge-readmeFeed the "Project Structure" section of the README
/cli-forge-docReference structure for generating the docs
/cli-audit-tangleCompare the physical structure against the logical couplings
/cli-audit-codeVerify naming conventions aligned with the structure
/cli-forge-chefAssign worktrees based on the structure
/cli-cycleIncluded in the cycle's structural audit

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.