Core Platform Team/Initiative/Reduce Extension Interface Surface Area/Epics, User Stories, and Requirements


 * Develop the product plan
 * Analysis and Design:
 * Action and filter hooks:
 * Approve RFC for action and filter hooks
 * Enumerate all current hook points, and analyze their usage in extensions
 * Categorize current hooks as action and/or filter hooks and map parameters (identify any parameters that need to change/create new parameter types)
 * Develop deprecation and migration plan
 * Access to core:
 * Define acceptable access to global state
 * Analyze which core code is called by extensions
 * Analyze what global state is accessed by extensions
 * Analyze which core classes are subclassed by extensions
 * Identify areas of core code that extensions should not access and identify alternatives
 * For each area of improvement identified:
 * Make proposal for improvement (possible RFC)
 * Collect feedback from stakeholders
 * Develop deprecation and migration plan
 * Create development plan
 * Development:
 * Implement the action and filter hook interfaces dictated in the RFC
 * Provide developer facing documentation for migration of for new hooks
 * Migrate extensions to new hooks
 * Implement new core interfaces per each proposal for improvement
 * Mark core code that is internal and may not be accessed by extensions (may require tool support)
 * Mark core classes that may be subclassed by extensions (may require tool support)
 * Provide developer facing documentation for migration to new core interfaces
 * Migrate extensions to new core interfaces
 * Deprecate then remove old hooks and interfaces