Claude-skill-registry fse-architecture

Oh My Brand! theme architecture and project structure. Directory layout, data flow, asset pipeline, and theme.json configuration. Use for understanding project organization.

install
source · Clone the upstream repo
git clone https://github.com/majiayu000/claude-skill-registry
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/fse-architecture" ~/.claude/skills/majiayu000-claude-skill-registry-fse-architecture && rm -rf "$T"
manifest: skills/data/fse-architecture/SKILL.md
source content

FSE Architecture

Project architecture and structure for the Oh My Brand! WordPress FSE theme.


When to Use

  • Understanding the project directory structure
  • Locating files and understanding their purpose
  • Understanding how blocks are organized
  • Understanding the build process and asset flow
  • Configuring theme.json settings

Reference Files

FilePurpose
theme.jsontheme.json structure and tokens

Project Structure

oh-my-brand/
├── AGENT.md               # AI assistant guidelines
├── functions.php          # Theme setup, hooks, registration
├── style.css              # Theme metadata (required by WP)
├── theme.json             # Global styles, settings, blocks
│
├── src/                   # Source files (@wordpress/scripts)
│   └── blocks/           # Native WordPress blocks
│       ├── gallery/      # Gallery carousel block
│       ├── faq/          # FAQ accordion block
│       └── utils/        # Shared utilities
│
├── build/                 # Compiled output (generated)
│   └── blocks/           # Built block assets
│
├── blocks/                # ACF custom blocks
│   ├── acf-faq/          # FAQ ACF block
│   └── acf-gallery-block/# Gallery ACF block
│
├── assets/                # Static assets
│   ├── css/              # Global stylesheets
│   ├── js/               # Compiled JavaScript
│   └── icons/            # SVG icons
│
├── includes/              # PHP includes
│   ├── assets.php        # Asset registration
│   └── block-helpers.php # Block utilities
│
├── acf-json/              # ACF field groups (auto-sync)
├── patterns/              # Block patterns
├── tests/                 # Test files
└── docs/                  # Documentation

Theme Architecture

Parent-Child Relationship

WordPress Core
      │
      ▼
Ollie Parent Theme
  • Base FSE templates
  • Default block styles
      │
      ▼
Oh My Brand! Child Theme
  • Custom blocks (native + ACF)
  • Extended theme.json
  • Brand-specific styles

File Loading Order

  1. WordPress Core loads first
  2. Ollie Parent Theme
    functions.php
  3. Oh My Brand!
    functions.php
  4. theme.json merges (child overrides parent)
  5. Block assets loaded per-block when rendered

Block Organization

Native Blocks (src/blocks/)

Built with

@wordpress/scripts
, compiled to
build/blocks/
:

FilePurpose
block.json
Block metadata
index.js
Registration entry
edit.tsx
Editor component
render.php
Server-side render
helpers.php
Helper functions
style.css
Frontend styles
view.ts
Frontend Web Component

ACF Blocks (blocks/)

ACF PRO blocks, not compiled:

FilePurpose
block.json
ACF block metadata
render.php
Render template
helpers.php
Helper functions
style.css
Block styles

Key Differences

AspectNative BlockACF Block
Location
src/blocks/
blocks/
Name prefix
theme-oh-my-brand/
acf/
Data source
$attributes
get_field()
Editor UIReact componentACF fields
BuildRequiredNot required

Asset Pipeline

Build Process

Source                    Build Output
──────                    ────────────
src/blocks/gallery/
├── index.js         →    build/blocks/gallery/
├── edit.tsx              ├── index.js
├── view.ts               ├── view.js
├── style.css             ├── style-index.css
└── editor.css            └── index.css

Commands

CommandPurpose
pnpm run build
Production build
pnpm run start
Watch mode
pnpm run lint
Run all linters

Asset Loading

PropertyWhen Loaded
style
Block rendered (frontend + editor)
editorStyle
Block in editor
viewScript
Block on frontend page

Data Flow

Native Block Data Flow

block.json (attributes) → edit.tsx (editor state)
      ↓
$attributes (saved to post)
      ↓
render.php (server render)
      ↓
view.ts (frontend interactivity)

ACF Block Data Flow

ACF Field Group (acf-json/) → WordPress Editor (ACF forms)
      ↓
get_field() (post meta)
      ↓
render.php (server render)

theme.json Configuration

Structure

See theme.json for complete structure example.

Design Tokens

Token TypeCSS Variable
Colors
var(--wp--preset--color--primary)
Spacing
var(--wp--preset--spacing--20)
Typography
var(--wp--preset--font-family--body)
Layout
var(--wp--style--global--content-size)

Related Skills


References