Official agent skill

Developer Code Organization

by github in github/gh-aw

Code organization patterns, file structure guidelines, WASM build variants, and string processing conventions for gh-aw Go code.

OfficialMITAuto-check passedDevelopment

Install Developer Code Organization

skills CLI
$ npx skills add github/gh-aw --skill developer-code-organization -a claude-code

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

GitHub CLI
$ gh skill install github/gh-aw developer-code-organization --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/github/gh-aw.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.github/skills/developer-code-organization .claude/skills/developer-code-organization && 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
developer-code-organization
GitHub stars
5.3k
Token cost
~4.6k tokens
SKILL.md length
1,638 words
Files
1
Skills in repo
52
Repo updated
First seen
Licence
MIT

At a glance

Code organization patterns, file structure guidelines, WASM build variants, and string processing conventions for gh-aw Go code.

  • Works in 4 steps: ansi_strip.go (108 LOC) → frontmatter_content.go (284 LOC) → remote_fetch.go (258 LOC) → …
  • Development work in your project
  • Calls go

What it does

Developer Code Organization is an agent skill from github/gh-aw, published by the product's own GitHub organization. Code organization patterns, file structure guidelines, WASM build variants, and string processing conventions for gh-aw Go code.

Its SKILL.md is about 4.6k 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. It works with WebAssembly and GitHub. The repository describes itself as: GitHub Agentic Workflows. The licence is MIT.

When your agent uses it

  • Development work in your project

Example prompts

  • “/developer-code-organization”

Requirements

  • Node.js

Workflow steps

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

  1. ansi_strip.go (108 LOC)
  2. frontmatter_content.go (284 LOC)
  3. remote_fetch.go (258 LOC)
  4. workflow_update.go (129 LOC)

What it can do on your machine

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

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • go

    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

Developer Code Organization loads about 4.6k tokens when it runs. Until then it costs about 39 tokens; SKILL.md has 1,638 words of instructions outside code blocks.

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

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 github/gh-aw at commit eb63040, republished under its MIT licence (© github). 1,638 words, ~4,556 tokens.

Download SKILL.mdSave it as .claude/skills/developer-code-organization/SKILL.md (or your agent's skills folder).
name
developer-code-organization
description
Code organization patterns, file structure guidelines, WASM build variants, and string processing conventions for gh-aw Go code.

Code Organization

Use this reference for gh-aw code organization patterns, file structure guidelines, WASM build-variant stubs, and string sanitization/normalization conventions.

Table of Contents

File Organization Principles

The codebase follows clear patterns for organizing code by functionality rather than type. This section provides guidance on maintaining code quality and structure.

Prefer Many Small Files Over Large Ones

Organize code into focused files of 100-500 lines rather than creating large monolithic files.

Example:

create_issue.go (160 lines)
create_pull_request.go (238 lines)
create_discussion.go (118 lines)
Group by Functionality, Not by Type

Recommended approach:

create_issue.go            # Issue creation logic
create_issue_test.go       # Issue creation tests
add_comment.go             # Comment addition logic
add_comment_test.go        # Comment tests

Avoid:

models.go                  # All structs
logic.go                   # All business logic
tests.go                   # All tests
Excellent Patterns to Follow
Create Functions Pattern

One file per GitHub entity creation operation:

  • create_issue.go - GitHub issue creation logic
  • create_pull_request.go - Pull request creation logic
  • create_discussion.go - Discussion creation logic
  • create_code_scanning_alert.go - Code scanning alert creation

Benefits:

  • Clear separation of concerns
  • Easy to locate specific functionality
  • Prevents files from becoming too large
  • Facilitates parallel development
Engine Separation Pattern

Each AI engine has its own file with shared helpers in engine_helpers.go:

  • copilot_engine.go - GitHub Copilot engine
  • claude_engine.go - Claude engine
  • codex_engine.go - Codex engine
  • custom_engine.go - Custom engine support
  • engine_helpers.go - Shared engine utilities
Test Organization Pattern

Tests live alongside implementation files:

  • Feature tests: feature.go + feature_test.go
  • Integration tests: feature_integration_test.go
  • Specific scenario tests: feature_scenario_test.go
File Size Guidelines
CategoryLinesUse CaseExample
Small files50-200Utilities, simple featuresargs.go (65 lines)
Medium files200-500Most feature implementationscreate_issue.go (160 lines)
Large files500-800Complex featurespermissions.go (905 lines)
Very large files800+Core infrastructure onlycompiler.go (1596 lines)
Decision Tree: Creating New Files
mermaid
graph TD
    A[Need to add code] --> B{New safe output type?}
    B -->|Yes| C[Create create_entity.go]
    B -->|No| D{New AI engine?}
    D -->|Yes| E[Create engine_name_engine.go]
    D -->|No| F{Current file > 800 lines?}
    F -->|Yes| G[Consider splitting by boundaries]
    F -->|No| H{Functionality independent?}
    H -->|Yes| I[Create new file]
    H -->|No| J[Add to existing file]
Decision Tree: Splitting Files
mermaid
graph TD
    A[Evaluating file split] --> B{File > 1000 lines?}
    B -->|Yes| C[SHOULD split]
    B -->|No| D{File > 800 lines?}
    D -->|Yes| E[CONSIDER splitting]
    D -->|No| F{Multiple responsibilities?}
    F -->|Yes| E
    F -->|No| G{Frequent merge conflicts?}
    G -->|Yes| E
    G -->|No| H[Keep as is]
Case Study: Refactoring Large Files

The refactoring of pkg/parser/frontmatter.go demonstrates applying file organization principles to a large monolithic file.

Initial State
  • Original file: 1,907 lines (monolithic structure)
  • Problem: Difficult to navigate, understand, and maintain
  • Goal: Split into focused, maintainable modules
Refactoring Approach
mermaid
graph TD
    A[frontmatter.go<br/>1,907 LOC] --> B[ansi_strip.go<br/>108 LOC]
    A --> C[frontmatter_content.go<br/>284 LOC]
    A --> D[remote_fetch.go<br/>258 LOC]
    A --> E[workflow_update.go<br/>129 LOC]
    A --> F[frontmatter.go<br/>1,166 LOC]

    B --> G[ANSI escape<br/>sequence utilities]
    C --> H[Frontmatter<br/>parsing & extraction]
    D --> I[GitHub remote<br/>content fetching]
    E --> J[Workflow file<br/>updates]
    F --> K[Core frontmatter<br/>processing]

    style B fill:#90EE90
    style C fill:#90EE90
    style D fill:#90EE90
    style E fill:#90EE90
    style F fill:#FFE4B5
Results
MetricBeforeAfterChange
Main file size1,907 LOC1,166 LOC-741 LOC (-39%)
Number of files15+4 files
Average file size1,907 LOC233 LOC-88%
Test pass rate100%100%No change ✓
Breaking changesN/A0None ✓
Modules Extracted
  1. ansi_strip.go (108 LOC)

    • ANSI escape sequence stripping utilities
    • Standalone, no dependencies
    • Functions: StripANSI(), isFinalCSIChar(), isCSIParameterChar()
  2. frontmatter_content.go (284 LOC)

    • Basic frontmatter parsing and extraction
    • Pure functions without side effects
    • Functions: ExtractFrontmatterFromContent(), ExtractFrontmatterString(), ExtractMarkdownContent(), etc.
  3. remote_fetch.go (258 LOC)

    • GitHub remote content fetching
    • GitHub API interactions and caching
    • Functions: downloadIncludeFromWorkflowSpec(), resolveRefToSHA(), downloadFileFromGitHub()
  4. workflow_update.go (129 LOC)

    • High-level workflow file updates
    • Frontmatter manipulation and cron expression handling
    • Functions: UpdateWorkflowFrontmatter(), EnsureToolsSection(), QuoteCronExpressions()
Key Principles Applied
  • Single Responsibility: Each module handles one aspect of frontmatter processing
  • Clear Boundaries: Well-defined interfaces between modules
  • Progressive Refactoring: Extract standalone utilities first, then higher-level modules
  • No Breaking Changes: Maintain public API compatibility throughout
  • Test-Driven Safety: Run tests after each extraction
Remaining Work

Three complex modules remain in the original file (requiring future work):

  • tool_sections.go (~420 LOC): Tool configuration extraction and merging
  • include_expander.go (~430 LOC): Recursive include resolution with cycle detection
  • frontmatter_imports.go (~360 LOC): BFS import traversal and processing

These remain due to high interdependency, stateful logic, and complex recursive algorithms.

Anti-Patterns to Avoid
God Files

Single file doing everything - split by responsibility instead. The frontmatter.go refactoring demonstrates how a 1,907-line "god file" can be systematically broken down.

Vague Naming

Avoid non-descriptive file names like utils.go, helpers.go, misc.go, common.go.

Use specific names like ansi_strip.go, remote_fetch.go, or workflow_update.go that clearly indicate their purpose.

Mixed Concerns

Keep files focused on one domain. Don't mix unrelated functionality in one file.

Test Pollution

Split tests by scenario rather than having one massive test file.

Premature Abstraction

Wait until you have 2-3 use cases before extracting common patterns.

Helper File Conventions

Helper files contain shared utility functions used across multiple modules. Follow these guidelines when creating or modifying helper files.

When to Create Helper Files

Create a helper file when you have:

  1. Shared utilities used by 3+ files in the same domain
  2. Clear domain focus (e.g., configuration parsing, MCP rendering, CLI wrapping)
  3. Stable functionality that won't change frequently

Examples of Good Helper Files:

  • github_cli.go - GitHub CLI wrapping functions (ExecGH, ExecGHWithOutput)
  • config_helpers.go - Safe output configuration parsing (parseLabelsFromConfig, parseTitlePrefixFromConfig)
  • map_helpers.go - Generic map/type utilities (parseIntValue, filterMapKeys)
  • mcp_renderer.go - MCP configuration rendering (RenderGitHubMCPDockerConfig, RenderJSONMCPConfig)
Naming Conventions

Helper file names should be specific and descriptive, not generic:

Good Names:

  • github_cli.go - Indicates GitHub CLI helpers
  • mcp_renderer.go - Indicates MCP rendering helpers
  • config_helpers.go - Indicates configuration parsing helpers

Avoid:

  • helpers.go - Too generic
  • utils.go - Too vague
  • misc.go - Indicates poor organization
  • common.go - Doesn't specify domain
What Belongs in Helper Files

Include:

  • Small (< 50 lines) utility functions used by multiple files
  • Domain-specific parsing/validation functions
  • Wrapper functions that simplify common operations
  • Type conversion utilities

Exclude:

  • Complex business logic (belongs in domain-specific files)
  • Functions used by only 1-2 callers (co-locate with callers)
  • Large functions (> 100 lines) - consider dedicated files
  • Multiple unrelated domains in one file
Helper File Organization

Current Helper Files in pkg/workflow:

FilePurposeFunctionsUsage
github_cli.goGitHub CLI wrapper2 functionsUsed by CLI commands and workflow resolution
config_helpers.goSafe output config parsing5 functionsUsed by safe output processors
map_helpers.goGeneric map/type utilities2 functionsUsed across workflow compilation
prompt_step_helper.goPrompt step generation1 functionUsed by prompt generators
mcp_renderer.goMCP config renderingMultiple rendering functionsUsed by all AI engines
engine_helpers.goShared engine utilitiesAgent, npm install helpersUsed by Copilot, Claude, Codex engines
When NOT to Create Helper Files

Avoid creating helper files when:

  1. Single caller - Co-locate with the caller instead
  2. Tight coupling - Function is tightly coupled to one module
  3. Frequent changes - Helper files should be stable
  4. Mixed concerns - Multiple unrelated utilities (split into focused files)

Example of co-location preference:

go
// Instead of: helpers.go containing formatStepName() used only by compiler.go
// Do: Put formatStepName() directly in compiler.go
Refactoring Guidelines

When refactoring helper files:

  1. Group by domain - MCP rendering → mcp_renderer.go, not engine_helpers.go
  2. Keep functions small - Large helpers (> 100 lines) may need dedicated files
  3. Document usage - Add comments explaining when to use each helper
  4. Check call sites - Ensure 3+ callers before keeping in helper file
Show full SKILL.md (670 more words)Show less
Example: MCP Function Reorganization

The MCP rendering functions were moved from engine_helpers.go to mcp_renderer.go because:

  • Domain focus: All functions relate to MCP configuration rendering
  • Multiple callers: Used by Claude, Copilot, Codex, and Custom engines
  • Cohesive: Functions work together to render MCP configs
  • Stable: Rendering patterns don't change frequently

Before:

engine_helpers.go (478 lines)
  - Agent helpers
  - npm install helpers
  - MCP rendering functions ← Should be in mcp_renderer.go

After:

engine_helpers.go (213 lines)
  - Agent helpers
  - npm install helpers
  
mcp_renderer.go (523 lines)
  - MCP rendering functions
  - MCP configuration types
String Sanitization vs Normalization

The codebase uses two distinct patterns for string processing with different purposes.

Sanitize Pattern: Character Validity

Purpose: Remove or replace invalid characters to create valid identifiers, file names, or artifact names.

When to use: When you need to ensure a string contains only valid characters for a specific context (identifiers, YAML artifact names, filesystem paths).

What it does:

  • Removes special characters that are invalid in the target context
  • Replaces separators (colons, slashes, spaces) with hyphens
  • Converts to lowercase for consistency
  • May preserve certain characters (dots, underscores) based on configuration
Normalize Pattern: Format Standardization

Purpose: Standardize format by removing extensions, converting between conventions, or applying consistent formatting rules.

When to use: When you need to convert between different representations of the same logical entity (e.g., file extensions, naming conventions).

What it does:

  • Removes file extensions (.md, .lock.yml)
  • Converts between naming conventions (dashes to underscores)
  • Standardizes identifiers to a canonical form
  • Does NOT validate character validity (assumes input is already valid)
Function Reference

Sanitize Functions:

  • SanitizeName(name string, opts *SanitizeOptions) string - Configurable sanitization with custom character preservation
  • SanitizeWorkflowName(name string) string - Sanitizes workflow names for artifact names and file paths
  • SanitizeIdentifier(name string) string - Creates clean identifiers for user agent strings

Normalize Functions:

  • normalizeWorkflowName(name string) string - Removes file extensions to get base workflow identifier
  • normalizeSafeOutputIdentifier(identifier string) string - Converts dashes to underscores for safe output identifiers
Decision Tree
mermaid
graph TD
    A[Need to process a string?] --> B{Need to ensure character validity?}
    B -->|Yes| C[Use SANITIZE]
    C --> D{Artifact name / file path?}
    C --> E{Identifier / user agent?}
    C --> F{Custom requirements?}
    D --> G[SanitizeWorkflowName]
    E --> H[SanitizeIdentifier]
    F --> I[SanitizeName with options]
    B -->|No| J{Need to standardize format?}
    J -->|Yes| K[Use NORMALIZE]
    K --> L{Remove file extensions?}
    K --> M{Convert conventions?}
    L --> N[normalizeWorkflowName]
    M --> O[normalizeSafeOutputIdentifier]
Best Practices
  1. Choose the right tool: Use sanitize for character validity, normalize for format standardization.
  2. Don't double-process: If normalize produces a valid identifier, don't sanitize it again.
  3. Document intent: When using these functions, add comments explaining which pattern you're using and why.
  4. Validate assumptions: If you assume input is already valid, document that assumption.
  5. Consider defaults: Use SanitizeIdentifier when you need a fallback default value for empty results.
Anti-Patterns

Don't sanitize already-normalized strings:

go
// BAD: Sanitizing a normalized workflow name
normalized := normalizeWorkflowName("weekly-research.md")
sanitized := SanitizeWorkflowName(normalized) // Unnecessary!

Don't normalize for character validity:

go
// BAD: Using normalize for invalid characters
userInput := "My Workflow: Test/Build"
normalized := normalizeWorkflowName(userInput) // Wrong tool!
// normalized = "My Workflow: Test/Build" (unchanged - invalid chars remain)
WASM Build-Variant Pattern

Seven files in pkg/workflow/ provide stub implementations of OS-dependent features for the WASM compilation target (GOOS=js GOARCH=wasm) used by the gh-aw web playground. Each file is named with the _wasm.go suffix (Go's implicit filename build constraint for GOARCH=wasm) and carries an explicit //go:build js || wasm tag at line 1:

pkg/workflow/dependabot_wasm.go
pkg/workflow/docker_validation_wasm.go
pkg/workflow/git_helpers_wasm.go
pkg/workflow/github_cli_wasm.go
pkg/workflow/npm_validation_wasm.go
pkg/workflow/pip_validation_wasm.go
pkg/workflow/repository_features_validation_wasm.go

Each _wasm.go file mirrors the public/package-level function signatures of its non-WASM counterpart but replaces OS calls (exec, filesystem, network) with either no-ops or fmt.Errorf("... not available in Wasm") returns.

When a _wasm.go Stub is Required

Add a _wasm.go stub whenever you add a new function to an existing _wasm.go-guarded file (or create a new file that calls OS-level tools at compile/validation time). Specifically:

  • Functions that call os/exec or run external binaries (gh, git, docker, npm, pip, uv, etc.)
  • Functions that read from the real filesystem during compilation
  • Functions that perform network I/O at validation time

Functions that do not need a WASM stub:

  • Pure data transformations (string manipulation, YAML marshaling)
  • Functions that only operate on in-memory data structures
  • Functions gated behind WithSkipValidation(true) (already excluded at runtime, but still need to compile)
How to Add a Stub
  1. Identify the non-WASM file (e.g., github_cli.go).
  2. Open (or create) the corresponding _wasm.go file (e.g., github_cli_wasm.go).
  3. Ensure the build tag at line 1 is //go:build js || wasm.
  4. Add a stub with the same signature that returns a zero value and/or an error:
    go
    func MyNewFunction(args ...string) ([]byte, error) {
        return nil, fmt.Errorf("MyNewFunction not available in Wasm")
    }
  5. Verify the WASM build still compiles:
    bash
    GOOS=js GOARCH=wasm go build ./pkg/workflow/
Known Gap

github_cli_wasm.go currently omits stubs for enrichGHError, runGHWithSpinnerContext, RunGHCombinedContext, RunGHWithHost, and SetGHHostEnv. These are unexported helpers or thin wrappers called only by the exported RunGH* family, which are already stubbed; the compiler does not reference them directly. This is intentional — avoid adding stubs for unexported helpers unless the WASM build breaks.

© github, MIT. 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 .github/skills/developer-code-organization of github/gh-aw.

Open the folder on GitHubat commit eb63040

Compare with similar skills

Developer Code Organization 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.

Developer Code Organization compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Developer Code Organization this skillgithub/gh-aw5.3k—~4.6kAutomated safety check: PassMIT
Releaseskillsynchq/txcript153—~775Automated safety check: PassApache-2.0
Add Molab Badgemarimo-team/skills174—~1.1kAutomated safety check: PassApache-2.0
Reflexo ReleaseMyriad-Dreamin/typst.ts1.2k—~1.5kAutomated safety check: PassApache-2.0
PR Babysitteropeninterpreter/openinterpreter69k3 repos~4.2kAutomated safety check: PassApache-2.0
Greplooponyx-dot-app/onyx32k4 repos~3.3kAutomated safety check: PassMIT

Similar skills

  • Release

    skillsynchq/txcript

    Cut a txcript release — dispatch the prepare-release workflow, approve the plan, watch the tag publish to crates.io, npm, and GitHub Releases, and verify.

    153 GitHub stars~775 tokensUpdated 8 days ago
    DevelopmentAuto-check passed
  • Add Molab Badge

    marimo-team/skills

    Add "Open in molab" badge(s) linking to marimo notebooks. An agent skill from marimo-team/skills.

    174 GitHub stars~1.1k tokensUpdated 1 mo ago
    Data & AnalyticsAuto-check passed
  • Reflexo Release

    Myriad-Dreamin/typst.ts

    Guide Reflexo/typst.ts release preparation and operator handoffs.

    1.2k GitHub stars~1.5k tokensUpdated 12 days ago
    DevOps & CloudAuto-check passed
  • PR Babysitter

    openinterpreter/openinterpreter

    Watches an open GitHub pull request until it merges, handling review comments, diagnosing CI failures and retrying flaky checks along the way.

    69k GitHub starsUsed in 3 repos~4.2k tokens
    DevelopmentAuto-check passed
  • Greploop

    onyx-dot-app/onyx

    Iteratively improves a PR (GitHub), MR (GitLab), or shelved changelist (Perforce) until Greptile gives it a 5/5 confidence score with zero unresolved comments.

    32k GitHub starsUsed in 4 repos~3.3k tokens
    DevelopmentAuto-check passed
  • Check PR

    onyx-dot-app/onyx

    Checks a GitHub, GitLab, or Perforce (p4) pull request (or merge request, or shelved changelist) for unresolved review comments, failing status checks, and incomplete PR descriptions.

    32k GitHub starsUsed in 2 repos~2.3k tokens
    DevelopmentAuto-check passed

More from github/gh-aw

All 52 skills in this repo
  • Official

    Drives a real browser from the command line with playwright-cli to open pages, interact, mock requests, save state and work with Playwright tests.

    5.3k GitHub starsUsed in 23 repos~2.8k tokens
    Auto-check passed
  • Official

    Designs and verifies a deterministic grader that measures whether a GitHub Agentic Workflow run reached its real-world or repository outcome.

    5.3k GitHub stars~6.8k tokensUpdated today
    Auto-check passed
  • Official

    Scaffolds, edits, reloads and debugs a canvas extension that the GitHub Copilot CLI can open in its side panel.

    5.3k GitHub stars~3.7k tokensUpdated today
    Auto-check passed
  • Official

    Drives an open pull request to merge-ready from inside a GitHub Copilot cloud agent, resolving review threads and local checks concurrently, without merging or retriggering CI.

    5.3k GitHub stars~3.8k tokensUpdated today
    Auto-check: warnings
  • Official

    Bumps gh-aw's pinned gh-aw-firewall version, rebuilds generated artifacts, and flags upstream spec or schema changes that need follow-up work.

    5.3k GitHub stars~899 tokensUpdated today
    Auto-check passed
  • Official

    Guide to the console struct tag system in gh-aw: headers, titles, number and cost formats, omitempty, and how structs, slices and maps render in the terminal.

    5.3k GitHub stars~736 tokensUpdated today
    Auto-check passed

Categories

Questions about Developer Code Organization

What does Developer Code Organization do?

Code organization patterns, file structure guidelines, WASM build variants, and string processing conventions for gh-aw Go code. Developer Code Organization is an agent skill from github/gh-aw, published by the product's own GitHub organization. Code organization patterns, file structure guidelines, WASM build variants, and string processing conventions for gh-aw Go code.

When should I use Developer Code Organization?

Developer Code Organization fits situations like: development work in your project.

How do I install Developer Code Organization in Claude Code?

Run `npx skills add github/gh-aw --skill developer-code-organization -a claude-code`. Or copy the skill folder (.github/skills/developer-code-organization in github/gh-aw) into .claude/skills/developer-code-organization in your project. Claude Code loads it when a task matches its description.

How do I install Developer Code Organization in Codex?

Run `npx skills add github/gh-aw --skill developer-code-organization -a codex`. Or copy the skill folder (.github/skills/developer-code-organization in github/gh-aw) into .agents/skills/developer-code-organization in your project. Codex loads it when a task matches its description.

Can I use Developer Code Organization 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 github/gh-aw --skill developer-code-organization -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/developer-code-organization, .gemini/skills/developer-code-organization, .github/skills/developer-code-organization and .opencode/skills/developer-code-organization in your project.

What does Developer Code Organization need to run?

Going by SKILL.md and its folder, Developer Code Organization needs the command-line tools its instructions call (go). Our summary lists: Node.js.

Does Developer Code Organization 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 Developer Code Organization 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 Developer Code Organization use?

Developer Code Organization is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Developer Code Organization use?

About 4.6k tokens (SKILL.md is roughly 18k 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 Developer Code Organization?

Skills that share tags, products or a category with Developer Code Organization: Release (skillsynchq/txcript, 153 stars), Add Molab Badge (marimo-team/skills, 174 stars), Reflexo Release (Myriad-Dreamin/typst.ts, 1.2k stars) and PR Babysitter (openinterpreter/openinterpreter, 69k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Developer Code Organization?

github (a GitHub organization, an official publisher) maintains it in github/gh-aw, which has 5,350 GitHub stars. The repository holds 52 skills in this directory. The repository was last updated on October 7, 2026.

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