Agent skill

Output Dev Folder Structure

by growthxai in growthxai/output

Workflow folder structure conventions for Output SDK. An agent skill from growthxai/output.

Apache-2.0Auto-check passedProductivity & Automation

Install Output Dev Folder Structure

skills CLI
$ npx skills add growthxai/output --skill output-dev-folder-structure -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install growthxai/output output-dev-folder-structure --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/growthxai/output.git skills-src && mkdir -p .claude/skills && cp -r skills-src/coding_assistants/claude/plugins/outputai/skills/output-dev-folder-structure .claude/skills/output-dev-folder-structure && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
output-dev-folder-structure
GitHub stars
440
Token cost
~2.2k tokens
SKILL.md length
572 words
Files
1
Skills in repo
52
Repo updated
First seen
Licence
Apache-2.0

At a glance

Workflow folder structure conventions for Output SDK. An agent skill from growthxai/output.

  • Creating new workflows
  • SKILL.md covers Overview, When to Use This Skill, Standard Project Structure and File Purposes, plus 6 more sections
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md
  • Organizing workflow files

What it does

Output Dev Folder Structure is an agent skill from growthxai/output. Workflow folder structure conventions for Output SDK. Use when creating new workflows, organizing workflow files, or understanding the standard project layout.

Its SKILL.md is about 2.2k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Productivity & Automation, covering File organization. The repository describes itself as: The open-source TypeScript framework for building AI workflows and agents. Designed for Claude Code describe what you want, Claude builds it, with all the best practices already… The licence is Apache-2.0.

When your agent uses it

  • Creating new workflows
  • Organizing workflow files
  • Understanding the standard project layout

Example prompts

  • “/output-dev-folder-structure”

Requirements

  • Pre-approved tools (allowed-tools): Read, Glob

What it can do on your machine

Read from SKILL.md and the folder at commit 52b51ac. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves these tools, so the agent can use them without asking each time:

    • Read
    • Glob

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md (its code samples are typescript).

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Output Dev Folder Structure loads about 2.2k tokens when it runs. Until then it costs about 47 tokens; SKILL.md has 572 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~47
When it runs · the whole SKILL.md, loaded when a task matches
~2.2k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from growthxai/output at commit 52b51ac, republished under its Apache-2.0 licence (© growthxai). 572 words, ~2,162 tokens.

Download SKILL.mdSave it as .claude/skills/output-dev-folder-structure/SKILL.md (or your agent's skills folder).
name
output-dev-folder-structure
description
Workflow folder structure conventions for Output SDK. Use when creating new workflows, organizing workflow files, or understanding the standard project layout.
allowed-tools
Read, Glob

Workflow Folder Structure Conventions

Overview

This skill documents the standard folder structure for Output SDK workflows. Following these conventions ensures consistency across the codebase and enables proper tooling support.

When to Use This Skill

  • Creating a new workflow from scratch
  • Reorganizing an existing workflow
  • Understanding where to place different file types
  • Reviewing workflow structure for compliance

Standard Project Structure

src/
├── shared/                          # Shared code across workflows
│   ├── clients/                     # API clients (using @outputai/http)
│   ├── utils/                       # Utility functions & helpers
│   ├── services/                    # Business logic services
│   ├── steps/                       # Shared steps (optional)
│   └── evaluators/                  # Shared evaluators (optional)
└── workflows/
    └── {workflow-name}/             # Individual workflow directory
        ├── workflow.ts              # Workflow definition (REQUIRED)
        ├── steps.ts                 # OR steps/ folder
        ├── evaluators.ts            # OR evaluators/ folder (optional)
        ├── types.ts                 # Zod schemas and TypeScript types
        ├── utils.ts                 # Workflow-specific utilities (optional)
        ├── prompts/                 # LLM prompt templates (optional)
        │   └── {promptName}@v1.prompt
        └── scenarios/               # Test input scenarios (optional)
            └── {scenario_name}.json

File Purposes

workflow.ts (Required)
  • Contains the main workflow() function definition
  • Default exports the workflow
  • Must be deterministic - no direct I/O operations
  • Orchestrates step calls

Related Skill: output-dev-workflow-function

steps.ts or steps/ folder (Required)
  • Contains all step() function definitions
  • Handles all I/O operations (HTTP, LLM, file system, etc.)
  • Named exports for each step function
  • Includes error handling with FatalError and ValidationError

Related Skill: output-dev-step-function

evaluators.ts or evaluators/ folder (Optional)
  • Contains evaluator() function definitions
  • Used for workflow quality assessment and validation
  • Named exports for each evaluator function
types.ts (Required)
  • Contains Zod schemas for input/output validation
  • Exports TypeScript types derived from schemas
  • Imports z from @outputai/core (never from zod)

Related Skill: output-dev-types-file

utils.ts (Optional)
  • Contains pure helper functions
  • No I/O operations - those belong in steps
  • Shared utility logic for the workflow
prompts/ folder (Optional)
  • Contains .prompt files for LLM operations
  • File naming: {promptName}@v1.prompt
  • Uses YAML frontmatter and Liquid.js templating

Related Skill: output-dev-prompt-file

scenarios/ folder (Optional)
  • Contains JSON test input files
  • File naming: {scenario_name}.json
  • Matches workflow inputSchema structure

Related Skill: output-dev-scenario-file

Organization Options

src/workflows/{workflow-name}/
├── workflow.ts
├── steps.ts           # All steps in one file
├── evaluators.ts      # All evaluators in one file (optional)
├── types.ts
└── ...
Option 2: Folder-Based (For larger workflows)
src/workflows/{workflow-name}/
├── workflow.ts
├── steps/             # Steps split into individual files
│   ├── fetch_data.ts
│   ├── process.ts
│   └── validate.ts
├── evaluators/        # Evaluators split into individual files
│   ├── quality.ts
│   └── accuracy.ts
├── types.ts
└── ...

Component Location Rules (Strict)

The Output SDK enforces strict rules about where components can be defined:

ComponentMust be in
step() callsFiles containing 'steps' in path
evaluator() callsFiles containing 'evaluators' in path
workflow() callsworkflow.ts file

Examples:

  • src/workflows/my_workflow/steps.ts ✓
  • src/workflows/my_workflow/steps/fetch_data.ts ✓
  • src/shared/steps/common_steps.ts ✓
  • src/workflows/my_workflow/helpers.ts ✗ (cannot contain step() calls)

Import Rules (Activity Isolation)

Steps and evaluators are Temporal activities with isolation constraints to ensure deterministic replay.

Steps CAN import from:
  • Local workflow files: ./utils.js, ./types.js, ./helpers.js
  • Local subdirectories: ./clients/pokeapi.js, ./lib/helpers.js
  • Shared utilities: ../../shared/utils/*.js
  • Shared clients: ../../shared/clients/*.js
  • Shared services: ../../shared/services/*.js
Steps CANNOT import:
  • Other steps (activity isolation)
  • Evaluators
  • Workflow files
Show full SKILL.md (234 more words)Show less
Evaluators follow the same rules:
  • CAN import local files and shared code
  • CANNOT import other evaluators, steps, or workflows

Import Pattern Examples:

typescript
// From workflow steps.ts - importing shared client
import { GeminiImageService } from '../../shared/clients/gemini_client.js';

// From workflow steps.ts - importing local utility
import { formatResponse } from './utils.js';

// From workflow steps.ts - importing types
import { InputSchema, OutputSchema } from './types.js';

// WRONG - steps cannot import other steps
import { otherStep } from '../../shared/steps/other.js'; // ✗

Shared Resources

src/shared/clients/

HTTP clients shared across workflows:

src/shared/clients/
├── gemini_client.ts     # Google Gemini API client
├── jina_client.ts       # Jina AI client
└── perplexity_client.ts # Perplexity API client

Import pattern in workflow steps:

typescript
import { GeminiImageService } from '../../shared/clients/gemini_client.js';

Related Skill: output-dev-http-client-create

src/shared/utils/

Utility functions shared across workflows:

src/shared/utils/
├── string_helpers.ts
├── date_formatters.ts
└── validators.ts
src/shared/services/

Business logic services shared across workflows:

src/shared/services/
├── image_service.ts
└── content_service.ts
src/shared/steps/ (Optional)

Shared steps that can be imported by workflows:

src/shared/steps/
└── common_steps.ts

Note: Workflows import shared steps, but steps cannot import other steps directly.

Naming Conventions

Folder Names
  • Use snake_case for workflow folder names
  • Example: image_infographic_nano, resume_parser
File Names
  • Use camelCase for .ts files (except workflow.ts, steps.ts, types.ts, evaluators.ts)
  • Use camelCase@v{n} for .prompt files
  • Use snake_case for .json scenario files
Workflow Names
  • The name property in workflow() should be camelCase
  • Example: imageInfographicNano

Example: Complete Workflow Structure

src/workflows/image_infographic_nano/
├── workflow.ts              # workflow({ name: 'imageInfographicNano', ... })
├── steps.ts                 # generateImageIdeas, generateImages, validateReferenceImages
├── types.ts                 # WorkflowInputSchema, WorkflowOutput, step schemas
├── utils.ts                 # normalizeReferenceImageUrls, buildS3Url, etc.
├── prompts/
│   └── generateImageIdeas@v1.prompt
└── scenarios/
    ├── test_input_complex.json
    └── test_input_solar_panels.json

Verification Checklist

When reviewing workflow structure, verify:

  • workflow.ts exists with default export
  • steps.ts or steps/ folder exists with all step definitions
  • types.ts exists with Zod schemas
  • All .ts imports use .js extension
  • prompts/ folder exists if LLM operations are used
  • scenarios/ folder exists with at least one test input
  • Folder naming follows snake_case convention
  • Workflow name in code follows camelCase convention
  • Steps only import allowed dependencies (local files, shared code)
  • No cross-component imports (steps don't import other steps)
  • output-dev-workflow-function - Writing workflow.ts files
  • output-dev-step-function - Writing step functions
  • output-dev-evaluator-function - Writing evaluators.ts files
  • output-dev-types-file - Creating Zod schemas
  • output-dev-prompt-file - Creating prompt files
  • output-dev-scenario-file - Creating test scenarios
  • output-dev-http-client-create - Creating shared HTTP clients

© growthxai, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in coding_assistants/claude/plugins/outputai/skills/output-dev-folder-structure of growthxai/output.

Open the folder on GitHubat commit 52b51ac

Compare with similar skills

Output Dev Folder Structure next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Output Dev Folder Structure compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Output Dev Folder Structure this skillgrowthxai/output440—~2.2kAutomated safety check: PassApache-2.0
Answer Me With HTMLQingYunA/answer-me-with-html2.1k—~4kAutomated safety check: PassMIT
Abp App Nolayersabpframework/abp14k—~575Automated safety check: PassLGPL-3.0
Feishu Driveraucvr/Group-Goki1123 repos~587Automated safety check: PassMIT
Azldev Comp Tomlmicrosoft/azurelinux5.3k—~1.6kAutomated safety check: PassMIT
PikpakBengerthelorf/pikpaktui120—~1.2kAutomated safety check: PassApache-2.0

Similar skills

  • Answer Me With HTML

    QingYunA/answer-me-with-html

    Turns an answer into a one-page visual HTML explainer: the model writes a short Markdown draft and the bundled CLI builds one page.

    2.1k GitHub stars~4k tokensUpdated today
    Productivity & AutomationAuto-check passed
  • Abp App Nolayers

    abpframework/abp

    ABP Single-Layer (No-Layers / nolayers) application template - single project structure, feature-based file organization, no separate Domain/Application.Contracts projects.

    14k GitHub stars~575 tokensUpdated today
    Productivity & AutomationAuto-check passed
  • Feishu Drive

    raucvr/Group-Goki

    Feishu cloud storage file management. An agent skill from raucvr/Group-Goki.

    112 GitHub starsUsed in 3 repos~587 tokens
    Productivity & AutomationAuto-check passed
  • Azldev Comp Toml

    microsoft/azurelinux

    Official

    Read this before authoring, editing, or reviewing a .comp.toml file; do not work from memory.

    5.3k GitHub stars~1.6k tokensUpdated today
    Productivity & AutomationAuto-check passed
  • Pikpak

    Bengerthelorf/pikpaktui

    Manage PikPak cloud storage — browse, upload, download, stream, share, and organize files via CLI.

    120 GitHub stars~1.2k tokensUpdated 2 mo ago
    Productivity & AutomationAuto-check passed
  • Advanced File Management

    MassLab-SII/open-agent-skills

    Advanced file management tools. An agent skill from MassLab-SII/open-agent-skills.

    133 GitHub stars~1.6k tokensUpdated 9 mo ago
    Productivity & AutomationAuto-check passed

More from growthxai/output

All 52 skills in this repo
  • Zod schema constraints that Anthropic rejects or silently ignores when sent as structured-output tool definitions via aiSdk.Output.object().

    440 GitHub stars~597 tokensUpdated today
    Auto-check passed
  • Output Build Workflow

    growthxai/output

    Implement an Output SDK workflow from a plan document. An agent skill from growthxai/output.

    440 GitHub stars~2.2k tokensUpdated today
    Auto-check passed
  • Output Credentials Edit

    growthxai/output

    View, edit, and set encrypted credentials in an Output.ai project.

    440 GitHub stars~1.1k tokensUpdated today
    Auto-check: notes
  • Wire encrypted credentials to environment variables using the credential: convention.

    440 GitHub stars~930 tokensUpdated today
    Auto-check: notes
  • Output Credentials Init

    growthxai/output

    Initialize encrypted credentials for an Output.ai project. An agent skill from growthxai/output.

    440 GitHub stars~803 tokensUpdated today
    Auto-check: notes
  • Output Debug Workflow

    growthxai/output

    Debug Output SDK workflow issues. An agent skill from growthxai/output.

    440 GitHub stars~1.5k tokensUpdated today
    Auto-check passed

Questions about Output Dev Folder Structure

What does Output Dev Folder Structure do?

Workflow folder structure conventions for Output SDK. An agent skill from growthxai/output. Output Dev Folder Structure is an agent skill from growthxai/output. Workflow folder structure conventions for Output SDK.

When should I use Output Dev Folder Structure?

Output Dev Folder Structure fits situations like: creating new workflows; organizing workflow files; understanding the standard project layout.

How do I install Output Dev Folder Structure in Claude Code?

Run `npx skills add growthxai/output --skill output-dev-folder-structure -a claude-code`. Or copy the skill folder (coding_assistants/claude/plugins/outputai/skills/output-dev-folder-structure in growthxai/output) into .claude/skills/output-dev-folder-structure in your project. Claude Code loads it when a task matches its description.

How do I install Output Dev Folder Structure in Codex?

Run `npx skills add growthxai/output --skill output-dev-folder-structure -a codex`. Or copy the skill folder (coding_assistants/claude/plugins/outputai/skills/output-dev-folder-structure in growthxai/output) into .agents/skills/output-dev-folder-structure in your project. Codex loads it when a task matches its description.

Can I use Output Dev Folder Structure in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add growthxai/output --skill output-dev-folder-structure -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/output-dev-folder-structure, .gemini/skills/output-dev-folder-structure, .github/skills/output-dev-folder-structure and .opencode/skills/output-dev-folder-structure in your project.

What does Output Dev Folder Structure need to run?

SKILL.md names no scripts, command-line tools or credentials: Output Dev Folder Structure is instructions for the agent only. Its frontmatter pre-approves these tools: Read, Glob.

Does Output Dev Folder Structure access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Output Dev Folder Structure safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Output Dev Folder Structure use?

Output Dev Folder Structure is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Output Dev Folder Structure use?

About 2.2k tokens (SKILL.md is roughly 8.6k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Output Dev Folder Structure?

Skills that share tags, products or a category with Output Dev Folder Structure: Answer Me With HTML (QingYunA/answer-me-with-html, 2.1k stars), Abp App Nolayers (abpframework/abp, 14k stars), Feishu Drive (raucvr/Group-Goki, 112 stars) and Azldev Comp Toml (microsoft/azurelinux, 5.3k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Output Dev Folder Structure?

growthxai (a GitHub organization) maintains it in growthxai/output, which has 440 GitHub stars. The repository holds 52 skills in this directory. The repository was last updated on October 7, 2026.

Source: growthxai/output on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.