Guidance for Claude Code in this repository. This mirrors AGENTS.md; keep the
two in sync when either changes.
WP React Kit / "Job Place" — a WordPress plugin with a React admin UI
(src/) backed by a PHP REST API (includes/). It manages job postings
(CRUD, publish/draft, dashboard stats) inside wp-admin, and ships a
public job board built with Gutenberg blocks and the Interactivity API.
- Text domain:
jobplace - PHP namespace root:
Akash\JobPlace(PSR-4 →includes/) - REST namespace:
job-place/v1 - Block namespace:
wrc/*(e.g.wrc/jobs-list,wrc/job-page) - Build output:
build/(produced by@wordpress/scripts)
npm run build # Production build (webpack) → build/
npm run start # Watch/dev build
npm run test:unit # Jest unit tests (jest-unit.config.js)
npm run makepot # Regenerate languages/jobplace.pot
php -l <file> # Lint a PHP fileAfter editing src/, run npm run build and confirm it compiles. After
editing PHP, run php -l on changed files.
job-place.php # Bootstrap: DI container, hooks, activation
includes/ # PHP (PSR-4: Akash\JobPlace\*)
Blocks/ # PatternRegistry, BlockTemplatesService, EditorData
Routing/ # Job detail permalinks + template router
Setup/ # Installer, Upgrader, PageSeeder
WordPress/Pages/ # PageService (default Jobs page)
… # REST, Jobs, Databases, Assets, Admin
src/
blocks/ # Gutenberg blocks (wrc/*) + shared pattern UI
scripts/ # Interactivity modules (@jobplace/jobs)
styles/jobs-board.scss # Shared front-end board styles
components/ # Admin UI (jobs/, dashboard/, TemplateListEdit)
data/jobs/ # wp-data store wp-react/jobs
templates/
patterns/ # Block patterns (jobs list + job detail layouts)
templates/single-job.html # Single job block template
Note: legacy empty folders under
src/components/(button, table, modal, …) are starter-kit leftovers — use@wordpress/components/@wordpress/dataviews.
- HashRouter +
@wordpress/dataviews/DataForm. - Store
wp-react/jobsinsrc/data/jobs/— read via selectors, mutate via generator actions + resolver invalidation. - Jobs list:
CompanyAvatarshows logo or initials (no broken remote logos).
- Interactivity API (
src/scripts/jobs/) powers search, pagination, and field binding on the front end. - Patterns in
templates/patterns/; Replace toolbar onwrc/jobs-listandwrc/job-page(seesrc/blocks/shared/). - Default Jobs page seeded on install (
PageSeeder, optionjobplace_jobs_page_id). - Settings at
#/settings— global job detail pattern, jobs page, defaults (Common/Settings.php, RESTjob-place/v1/settings). - Single job template + routing in
includes/Routing/. - SEO: semantic
<article>list items, linked job titles, escaped output inview.phptemplates.
- BEM with
jobplace-prefix; nest with&__element/&--modifierunder the block root (seesrc/blocks/jobs-template/style.scss). - Use
var(--wp--style--block-gap)for list/template spacing — do not hard-codegapon blocks that expose block spacing in the editor. - Shared board CSS:
src/styles/jobs-board.scss.
See AGENTS.md for REST architecture, schema migration steps, DataViews CSS,
dbDelta rules, and layout-class requirements for wrc/jobs-template.
- Never commit or push unless explicitly asked in the current message.
- Do NOT add Claude's default attribution (no Co-Authored-By, bots, emojis).
- Commit as the logged-in GitHub user (
ManiruzzamanAkash). Do not edit git config or pass--author. - Stage explicit paths only (never
git add ./-A).