agentsclimarketplace

Agent anatomy

Skill bowtiefunnel/bowtie-funnel-Labs/skills/agent-anatomy

Reusable skills for AI coding agents. Organize any agent folder into a clean, filesystem-first layout.

Install
npx -y skills add bowtiefunnel/bowtie-funnel-Labs --skill agent-anatomy

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

2 things to look at

  • 20 days oldThe repository was created 20 days ago. New is not bad, but a brand new repository carrying a familiar-sounding name is the shape a typosquat arrives in, and there has been no time for anyone else to find a problem with it.
  • 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its author says it does

Copied from the file, not written here

Use when scaffolding a new AI agent's project folder, or when an existing agent's files (prompt, tools, procedures, scheduled jobs, integrations) are scattered in one directory with no structure. Organizes any agent folder into a filesystem-first layout.

SKILL.md

3.6 KB, as published. Nobody here has run it

agent-anatomy

Organize any AI agent's project into a filesystem-first layout: one agent = one folder, every capability = a file in a conventionally-named subfolder. Language-agnostic — tools can be Python, TypeScript, anything.

Core principle: names come from file paths, not config. tools/issue_refund.py is the tool issue_refund. Never add a name: field to restate the path.

The convention

instructions.md (the always-on system prompt) is the one required file. Everything else is an optional, canonically-named subfolder. Classify each file:

A file that…goes innotes
is the system prompt / persona / instructionsinstructions.mdrename prompt.txt, system.md, etc. to this
does a discrete action the agent invokestools/filename = tool name
is a markdown procedure followed on demandskills/e.g. how-to-escalate.md
runs on a timer / cron / "every morning"schedules/
receives inbound messages (webhook, bot)channels/Slack, HTTP, Discord
calls an outbound third-party API / serviceconnections/external APIs, MCP servers
is a nested agentsubagents/<name>/recurse — same convention
is durable state the agent reads backmemory/
is shared code imported by tools/jobslib/utils/formatters — not a capability
is dev scratch / TODOs / personal notesleave in placeflag it, don't move

Two modes — detect first

Empty or missing folder → Scaffold. Has files → Reorganize.

Scaffold

  1. Ask once: what does this agent do? (purpose + capabilities)
  2. Write a real instructions.md for that purpose — not a placeholder.
  3. Create only the subfolders that purpose needs, each with one real starter file (a working tool stub, a procedure, etc.).

Reorganize

  1. Inventory every file. Skip .git/, node_modules/, .venv/, lockfiles, build output.
  2. Classify each against the table.
  3. Present a move plan as a table, then STOP for approval:
    current path        →  new path                   reason
    prompt.txt          →  instructions.md            system prompt (required file)
    refund_tool.py      →  tools/issue_refund.py      discrete action; path = tool name
    how_to_escalate.md  →  skills/how-to-escalate.md  on-demand procedure
    daily_report.py     →  schedules/daily_report.py  cron job
    slack.py            →  channels/slack.py          inbound channel
    utils.py            →  lib/utils.py               shared helper, not a capability
    notes.txt           →  (leave in place)           dev scratch — ask first
    
  4. Apply only after approval. Then move the files.

Hard rules

  • Never delete anything. Reorganizing is moving, not removing.
  • Never move without an approved plan (reorganize mode).
  • No empty folders — a subfolder exists only once it holds a real file.
  • Exact folder names onlyskills/ not knowledge/, schedules/ not jobs/, channels/ not integrations/. Inventing synonyms defeats a shared convention.
  • The prompt is always instructions.md — rename any variant to it.
  • No name: fields duplicating the path.
  • Inside a git repo, move with git mv. Never overwrite an existing destination — flag the collision in the plan instead.

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.