Agent skill

Output Dev Code Style

by growthxai in growthxai/output

Code style conventions for Output SDK workflow projects. An agent skill from growthxai/output.

Apache-2.0Auto-check: notesDevelopment

Install Output Dev Code Style

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

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

GitHub CLI
$ gh skill install growthxai/output output-dev-code-style --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-code-style .claude/skills/output-dev-code-style && 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-code-style
GitHub stars
440
Token cost
~1.5k tokens
SKILL.md length
529 words
Files
1
Skills in repo
52
Repo updated
First seen
Licence
Apache-2.0

At a glance

Code style conventions for Output SDK workflow projects. An agent skill from growthxai/output.

  • Works in 4 steps: Check for a linter config. Look for… → Check for a formatter config. Look for… → Check for lint/format scripts. Look in… → …
  • Reviewing any TypeScript/JavaScript code
  • SKILL.md covers Overview, When to Use This Skill, Rules Discovery (do this first) and Output SDK Default Conventions, plus 2 more sections
  • Calls npm and npx

What it does

Output Dev Code Style is an agent skill from growthxai/output. Code style conventions for Output SDK workflow projects. Use when writing or reviewing any TypeScript/JavaScript code. Discovers the project's own linting rules first; falls back to Output SDK conventions when no linter is configured.

Its SKILL.md is about 1.5k 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 Development, covering Linting and formatting. It works with JavaScript, TypeScript and ESLint. 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

  • Reviewing any TypeScript/JavaScript code
  • Tasks that involve Linting and formatting

Example prompts

  • “/output-dev-code-style”

Requirements

  • Node.js
  • Pre-approved tools (allowed-tools): Read, Bash, Glob, Grep

Workflow steps

4 steps, taken from the first numbered list in SKILL.md.

  1. Check for a linter config. Look for eslint.config.js, .eslintrc.*, biome.json, deno.json, or similar in the project root.
  2. Check for a formatter config. Look for .prettierrc*, .editorconfig, or formatter settings in package.json.
  3. Check for lint/format scripts. Look in package.json for lint, lint:fix, format, or similar scripts.
  4. Read existing source files. If no config exists, infer conventions from the existing code (comma style, quote style, indentation…

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
    • Bash
    • Glob
    • Grep

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • npm
    • npx

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

  • Network

    No URLs in SKILL.md. Its commands use npm and npx, which can reach the network depending on how they are called.

    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 Code Style loads about 1.5k tokens when it runs. Until then it costs about 64 tokens; SKILL.md has 529 words of instructions outside code blocks.

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

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: notes

The automated check noted patterns worth knowing about, such as sudo or a known installer.

  • NotePre-approves every shell command (allowed-tools: Bash)SKILL.md
    allowed-tools: Read, Bash, Glob, Grep

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). 529 words, ~1,548 tokens.

Download SKILL.mdSave it as .claude/skills/output-dev-code-style/SKILL.md (or your agent's skills folder).
name
output-dev-code-style
description
Code style conventions for Output SDK workflow projects. Use when writing or reviewing any TypeScript/JavaScript code. Discovers the project's own linting rules first; falls back to Output SDK conventions when no linter is configured.
allowed-tools
Read, Bash, Glob, Grep

Code Style Conventions

Overview

Generated code must match the style of the project it lives in. Many projects use their own linter or formatter (ESLint, Prettier, Biome, etc.) with rule sets that differ from Output's defaults. Always discover and follow the project's rules first. Only fall back to the Output SDK conventions below when the project has no linter or formatter configured.

When to Use This Skill

  • Writing any TypeScript or JavaScript code in a workflow project
  • Reviewing generated code before delivery
  • Fixing lint errors after generation

Rules Discovery (do this first)

Before writing or reviewing code, determine the project's style rules:

  1. Check for a linter config. Look for eslint.config.js, .eslintrc.*, biome.json, deno.json, or similar in the project root.
  2. Check for a formatter config. Look for .prettierrc*, .editorconfig, or formatter settings in package.json.
  3. Check for lint/format scripts. Look in package.json for lint, lint:fix, format, or similar scripts.
  4. Read existing source files. If no config exists, infer conventions from the existing code (comma style, quote style, indentation, semicolons, spacing).
If the project has a linter or formatter
  • Follow its rules. Do not apply Output SDK conventions that conflict.
  • Run the project's lint/format command after generating code.
  • If a rule is ambiguous, match the patterns in existing source files.
If the project has no linter or formatter
  • Apply the Output SDK Default Conventions below.
  • Match any conventions already present in existing source files -- consistency with the repo takes priority over the defaults below.

Output SDK Default Conventions

These rules reflect the Output SDK's own ESLint config. Apply them only when the project has no linter configured and no conflicting conventions are evident in existing code.

No Trailing Commas

Never use trailing commas in objects, arrays, function parameters, or type definitions.

typescript
// CORRECT
const config = {
  name: 'workflow',
  timeout: 30000
};

const items = [ 'a', 'b', 'c' ];

export const myStep = step( {
  name: 'myStep',
  inputSchema: MyInputSchema,
  outputSchema: MyOutputSchema,
  fn: async input => {
    return { result: input.value };
  }
} );
typescript
// WRONG - trailing commas
const config = {
  name: 'workflow',
  timeout: 30000,  // <-- not allowed
}

const items = [ 'a', 'b', 'c', ]  // <-- not allowed
No let Declarations

let is banned. Use const exclusively. When a value needs conditional assignment, use a ternary, an IIFE, or restructure the logic.

typescript
// CORRECT - ternary
const label = count > 1 ? 'items' : 'item';

// CORRECT - named helper for complex cases
const fetchWithFallback = async url => {
  try {
    return await fetchContent( url );
  } catch {
    return '[Content unavailable]';
  }
};
const content = await fetchWithFallback( url );

// CORRECT - early return in a function
function resolve( input ) {
  if ( input.mode === 'fast' ) {
    return fastPath( input );
  }
  return standardPath( input );
}
typescript
// WRONG
let content;  // <-- banned
try {
  content = await fetchContent( url );
} catch {
  content = '[Content unavailable]';
}

let label;  // <-- banned
if ( count > 1 ) {
  label = 'items';
} else {
  label = 'item';
}
Show full SKILL.md (213 more words)Show less
Arrow Parens Only When Needed

Single-parameter arrow functions must not have parentheses. Use parens only for zero, multiple, destructured parameters, or when a TypeScript return type annotation is present.

typescript
// CORRECT
items.map( item => item.id )
items.filter( s => s.url )
items.forEach( x => console.log( x ) )
fn: async input => { ... }

// Parens required for these cases:
items.reduce( ( acc, item ) => acc + item, 0 )
const run = ( { name, id } ) => `${name}-${id}`;
const noop = () => {};
fn: async ( input ): Promise<WorkflowOutput> => { ... }  // return type annotation
typescript
// WRONG - unnecessary parens on single param
items.map( ( item ) => item.id )
items.filter( ( s ) => s.url )
fn: async ( input ) => { ... }
prefer-const

Always use const. If a binding is never reassigned, it must be const.

Operator Linebreak After

When an expression spans multiple lines, the operator stays on the first line.

typescript
// CORRECT
const result = longExpression +
  anotherExpression;

const isValid = conditionA &&
  conditionB &&
  conditionC;

const value = condition ?
  trueResult :
  falseResult;
typescript
// WRONG - operator on next line
const result = longExpression
  + anotherExpression;
Spacing
  • Space in parens: fn( x ) not fn(x), except empty parens fn()
  • Space in brackets: [ 'a', 'b' ] not ['a', 'b']
  • Space in braces: { key: value } not {key: value}
  • Indent: 2 spaces
  • Quotes: single quotes
  • Semicolons: always
File and Folder Naming
  • All file names: snake_case (e.g., fetch_data.ts, html_renderer.ts)
  • All folder names: snake_case (e.g., ai_hn_digest, shared_utils)
  • Exceptions: config files (vitest.config.js, eslint.config.js)

Quick Reference (Output SDK defaults)

RuleCorrectWrong
Trailing comma{ a: 1 }{ a: 1, }
Variable declarationconst x = 1let x = 1
Single-param arrowx => x.id( x ) => x.id
Operator linebreaka +\n ba\n + b
Parens spacingfn( x )fn(x)

Verification

  1. If the project has a lint command (npm run lint, npx eslint, etc.), run it and fix any violations.
  2. If the project has a format command (npm run format, npx prettier --write, etc.), run it.
  3. If neither exists, review the generated code against existing source files in the repo for consistency.

© 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-code-style of growthxai/output.

Open the folder on GitHubat commit 52b51ac

Compare with similar skills

Output Dev Code Style 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 Code Style compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Output Dev Code Style this skillgrowthxai/output440—~1.5kAutomated safety check: NotesApache-2.0
Ultraciteagustinusnathaniel/nextarter-tailwind1252 repos~1.2kAutomated safety check: PassMIT
Code Qualityredis/RedisInsight8.9k—~1.2kAutomated safety check: PassCustom licence
Port Ruleweb-infra-dev/rslint460—~1.7kAutomated safety check: PassMIT
Migrate OxlintAsvarox/allkaraoke2614 repos~2.5kAutomated safety check: PassNone
Typescript Tooling MigrationArize-ai/phoenix12k—~2.8kAutomated safety check: PassApache-2.0

Similar skills

  • Ultracite

    agustinusnathaniel/nextarter-tailwind

    Ultracite is a zero-config linting and formatting preset for JavaScript/TypeScript projects.

    125 GitHub starsUsed in 2 repos~1.2k tokens
    DevelopmentAuto-check passed
  • Code Quality

    redis/RedisInsight

    Official

    Code-quality standards for RedisInsight: TypeScript strictness, naming conventions (camelCase, PascalCase, UPPERSNAKECASE), linting rules, no any without reason, no !important in styles, and…

    8.9k GitHub stars~1.2k tokensUpdated 3 days ago
    DevelopmentAuto-check passed
  • Port Rule

    web-infra-dev/rslint

    Port a new ESLint core or plugin rule to rslint, including explicitly requested batches.

    460 GitHub stars~1.7k tokensUpdated today
    DevelopmentAuto-check passed
  • Migrate Oxlint

    Asvarox/allkaraoke

    Guide for migrating a project from ESLint to Oxlint. An agent skill from Asvarox/allkaraoke.

    261 GitHub starsUsed in 4 repos~2.5k tokens
    DevelopmentAuto-check passed
  • Migrate or upgrade TypeScript tooling in the Phoenix monorepo.

    12k GitHub stars~2.8k tokensUpdated today
    DevelopmentAuto-check passed
  • Antfu

    JetBrains/skills

    Official

    Anthony Fu's opinionated tooling and conventions for JavaScript/TypeScript projects.

    364 GitHub starsUsed in 4 repos~1k tokens
    DevelopmentAuto-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

Categories

Questions about Output Dev Code Style

What does Output Dev Code Style do?

Code style conventions for Output SDK workflow projects. An agent skill from growthxai/output. Output Dev Code Style is an agent skill from growthxai/output. Code style conventions for Output SDK workflow projects.

When should I use Output Dev Code Style?

Output Dev Code Style fits situations like: reviewing any TypeScript/JavaScript code; tasks that involve Linting and formatting.

How do I install Output Dev Code Style in Claude Code?

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

How do I install Output Dev Code Style in Codex?

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

Can I use Output Dev Code Style 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-code-style -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-code-style, .gemini/skills/output-dev-code-style, .github/skills/output-dev-code-style and .opencode/skills/output-dev-code-style in your project.

What does Output Dev Code Style need to run?

Going by SKILL.md and its folder, Output Dev Code Style needs the command-line tools its instructions call (npm and npx). Our summary lists: Node.js. Its frontmatter pre-approves these tools: Read, Bash, Glob, Grep.

Does Output Dev Code Style access the network?

SKILL.md contains no URLs. Its commands use npm and npx, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Output Dev Code Style safe to install?

Our automated static check of SKILL.md found notes only (pre-approves every shell command (allowed-tools: bash)), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.

What licence does Output Dev Code Style use?

Output Dev Code Style 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 Code Style use?

About 1.5k tokens (SKILL.md is roughly 6.2k 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 Code Style?

Skills that share tags, products or a category with Output Dev Code Style: Ultracite (agustinusnathaniel/nextarter-tailwind, 125 stars), Code Quality (redis/RedisInsight, 8.9k stars), Port Rule (web-infra-dev/rslint, 460 stars) and Migrate Oxlint (Asvarox/allkaraoke, 261 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Output Dev Code Style?

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.