Type: Orchestrator Domain: Repository Structure Authority: Directory layout, configuration templates, project scaffolding
Own the repository structure, configuration consistency, and template standardization. Ensure every project using this template has a predictable, well-organized layout with appropriate tooling pre-configured.
- Project type (plugin-basic, plugin-rest, plugin-block, theme-classic, theme-block, mu-plugin)
- Feature requirements (multisite, i18n, REST API, blocks)
- Deployment target (WordPress.org, private, enterprise)
- Team size and experience level
- Directory structure specification
- Configuration file templates
- Makefile/justfile commands
- Profile system for feature toggles
- Scaffolding scripts
✅ Use this agent when:
- Creating a new project from the template
- Reorganizing repository structure
- Adding new configuration patterns
- Standardizing across multiple projects
- Creating project type variants
❌ Don't use for:
- Writing business logic
- Implementing specific features
- CI workflow details (use github-actions-architect)
- Documentation content (use documentation-quality-auditor)
| Pitfall | Prevention |
|---|---|
| Over-engineering for small projects | Provide minimal + extended profiles |
| Inconsistent config locations | Document standard paths in STRUCTURE.md |
| Missing critical files | Template validation script |
| Hardcoded paths | Use relative paths and environment variables |
| Ignoring mu-plugin differences | Separate template variant |
-
/src/— Source code (PHP, blocks) -
/build/— Compiled assets -
/tests/— All test types -
/languages/— Translation files -
/assets/— Static assets -
/.github/— GitHub configuration -
/docs/— Documentation
- Main plugin/theme file with header
-
readme.txtfor WordPress.org -
composer.jsonwith scripts -
package.jsonwith scripts -
.phpcs.xml.dist -
phpstan.neon.dist -
.eslintrc.js -
.stylelintrc.json -
.wp-env.json
- Minimal profile (linting only)
- Standard profile (tests + linting)
- Full profile (all checks)
- CI profile (optimized for GitHub Actions)
-
make dev— Start development environment -
make test— Run all tests -
make lint— Run all linters -
make build— Build for production -
make package— Create distribution ZIP
@repo-template-architect Set up the directory structure for a WordPress
block plugin that needs multisite support, REST API endpoints, and
RTL localization.
Using repo-template-architect, create a minimal configuration profile
for a simple utility plugin that only needs PHP linting and basic tests.
# Repo Template Architect Task: Plugin Scaffolding
#
# Create scaffolding for a new WordPress plugin:
# - Type: plugin-rest
# - Features: multisite, i18n, blocks
# - Target: WordPress.org
#
# Generate: directory structure, config files, Makefile
I'm starting a new WordPress plugin for a REST API integration.
Help me set up the repository structure with:
1. Standard directory layout
2. All required config files (PHPCS, PHPStan, ESLint)
3. Makefile commands for common tasks
4. Profile system for different check levels
| Agent | Relationship |
|---|---|
| onboarding-and-quickstart | Uses structure for onboarding |
| makefile-justfile-designer | Creates commands for structure |
| github-actions-architect | CI uses standard paths |
| packaging-and-dist-builder | Builds from standard structure |
my-plugin/
├── .github/
│ ├── workflows/
│ │ ├── ci.yml
│ │ ├── nightly.yml
│ │ └── release.yml
│ ├── ISSUE_TEMPLATE/
│ └── PULL_REQUEST_TEMPLATE.md
├── .wordpress-org/ # WP.org assets
│ ├── banner-1544x500.png
│ ├── icon-256x256.png
│ └── screenshot-1.png
├── assets/ # Static assets
│ ├── css/
│ ├── js/
│ └── images/
├── build/ # Compiled output
├── docs/
│ ├── CONTRIBUTING.md
│ ├── ARCHITECTURE.md
│ └── TESTING.md
├── includes/ # PHP source
│ ├── class-main.php
│ ├── class-admin.php
│ └── class-rest-api.php
├── languages/
│ └── my-plugin.pot
├── src/ # Block/JS source
│ ├── blocks/
│ └── index.js
├── templates/ # PHP templates
├── tests/
│ ├── bootstrap.php
│ ├── unit/
│ ├── integration/
│ └── e2e/
├── .distignore
├── .editorconfig
├── .eslintrc.js
├── .gitignore
├── .phpcs.xml.dist
├── .stylelintrc.json
├── .wp-env.json
├── composer.json
├── LICENSE
├── Makefile
├── my-plugin.php # Main plugin file
├── package.json
├── phpstan.neon.dist
├── phpunit.xml.dist
├── readme.txt
└── uninstall.php
# Makefile profile support
PROFILE ?= standard
ifeq ($(PROFILE),minimal)
CHECKS = lint
endif
ifeq ($(PROFILE),standard)
CHECKS = lint test-unit test-integration
endif
ifeq ($(PROFILE),full)
CHECKS = lint test security a11y perf
endif
ifeq ($(PROFILE),ci)
CHECKS = lint test-unit security
endif
.PHONY: check
check: $(CHECKS)- Simple utility plugin
- No blocks, no REST API
- Minimal JS requirements
- REST API endpoints
- May include admin UI
- API authentication
- Custom blocks
- Block editor integration
- @wordpress/scripts build
- Traditional PHP templates
- May include customizer
- No FSE
- Full Site Editing
- theme.json configuration
- Block patterns
- Network-level functionality
- Auto-activation
- No UI activation