# BW Agenda Table — Claude Development Guide

**Version:** 0.1.6 | **Last Updated:** 2026-05-14

## What this plugin does

Registers the `bw/agenda-table` Gutenberg block — a Day View timeline of event Sessions with auto single/multi-day date navigation. Reads from a host-site `session` CPT (with ACF or plain post meta) and an optional `track` taxonomy. Renders a "Coming soon" empty state when the CPT is missing or has no published posts.

## Before making changes

1. Read `docs/SESSION-LOG.md` for recent context.
2. Read `docs/HANDOFF-NOTES.md` for any pending async messages.
3. Read `docs/SPEC.md` for current requirements.
4. Check `docs/KNOWN-ISSUES.md` for active bugs and workarounds.

## Versioning

- Patch (X.Y.Z): bug fix / small iteration.
- Minor (X.Y.0): new feature / task completion.
- Major (X.0.0): breaking change.

Every bump must update all four:
1. Plugin header `Version:` field in `bw-agenda-table.php`
2. `BW_AGENDA_TABLE_VERSION` constant in `bw-agenda-table.php`
3. `CHANGELOG.md`
4. This file's header

The block's `index.asset.php` `version` field should also follow plugin version so editor assets cache-bust on release.

## Architecture Quick Reference

- Main file: `bw-agenda-table.php`
- Block registration class: `includes/class-bw-agenda-table-block.php`
- Block manifest + assets: `blocks/bw-agenda-table/`
  - `block.json` — manifest
  - `render.php` — server-side render (helpers + markup)
  - `index.js` — editor entry (Inspector controls + ServerSideRender preview)
  - `view.js` — frontend interactivity (multi-day switcher)
  - `style.css` — frontend + editor shared styles
  - `editor.css` — editor-only tweaks
- Docs: `docs/`

## Host-site contract

This plugin does **not** register the `session` CPT or `track` taxonomy — the host theme/plugin owns them. The block degrades to demo data when the CPT is absent. See `README.md` for the full field-name alias table.

## Never

- Edit `vendor/` (third-party code).
- Commit secrets.
- Release with debug cruft present.
- Release with mismatched version numbers.
- Register the `session` CPT or `track` taxonomy from this plugin — that's the host site's job.
