* docs: M4 public surface unification design spec
Contract-first cleanup approach for making every public API element
an intentional v1 contract before release.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* docs: M4 public surface unification implementation plan
9 tasks covering milestone creation, verification test, layer-by-layer
triage of 144 API elements (115 public, 29 internal), surface map,
spec updates, and governance issue cleanup.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* test(#11): add public surface verification test and empty surface map
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* refactor(#12): L0 Foundation surface triage — 48 public, 20 internal
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* refactor(#13): L1 Core Data surface triage — 37 public, 4 internal
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* refactor(#14): L2-L4 surface triage — 13 public, 1 internal
* refactor(#15): L5-L6 surface triage — 16 public, 5 internal, 2 discovered
Added L5 (AI) and L6 (Interfaces) entries to the surface map:
- 16 public: AI agent/pipeline/vector interfaces, admin-surface, MCP bridge/auth, SSR theme, CLI ingestion, OAuthProvider (2 discovered during scan)
- 5 internal: Telescope storage/codified-context interfaces, CLI AbstractMakeCommand, McpTool base class
Added @internal docblocks to all 5 internal elements.
All 3 PublicSurfaceVerificationTest assertions pass.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* docs(#16): add human-readable public surface map
* docs(#17): update specs to reflect M4 surface triage decisions
- infrastructure.md: add SchemaRegistryInterface section; add consumer
guidance to RateLimiterInterface, AssetManagerInterface (with new
interface section), and HealthCheckerInterface; add Internal Interfaces
section noting TenantResolverInterface and mail interfaces as @internal
- access-control.md: annotate ErrorPageRendererInterface as @internal in
file tree
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* docs: mark ComputedFieldInterface and McpTool as @internal in specs
Fixes drift detector STALE warnings for entity-system.md and
mcp-endpoint.md triggered by M4 @internal annotations.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* fix: remove stale `listeners` param from PackageManifest test calls
Three tests used the removed `listeners:` named parameter, causing
failures since the PackageManifest constructor was refactored.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* style: fix import order in HttpKernel (php-cs-fixer)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* docs: bump infrastructure spec review marker for M4
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* fix: surface verification test now catches all non-public dispositions
The @internal annotation check only matched 'internal' and 'remove'
dispositions, silently skipping 'extract'. Use negation instead.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>