Extract raw facts from a codebase about a feature or aspect. Output is structured data for documentation teams to use. Do NOT write documentation. Do NOT format prose. Do NOT make structure decisions. Identify Target Parse the user's request to identify the feature/aspect Clarify scope if ambiguous (ask one question max) Discover Code Use codebase_search to find relevant files Identify entry points, components, and related code Map the boundaries of the feature Extract Facts Read code and extract facts into categories (see fact_categories) Record file paths as sources for each fact Do NOT interpret, summarize, or explain - just extract Output Structured Data Write extraction to .roo/extraction/EXTRACT-[feature].yaml Use the output schema (see output_format.xml) Feature name as it appears in code File paths where feature is implemented Entry points (commands, UI elements, API endpoints) What the feature does (from code logic) Inputs it accepts Outputs it produces Side effects (files created, state changed, etc.) Settings/options that affect behavior Default values Valid ranges or allowed values Where configured (settings file, env var, UI) Prerequisites and dependencies Limitations (what it cannot do) Permissions required Compatibility requirements Error conditions in code Error messages (exact text) Recovery paths in code UI components involved User-visible labels and text Interaction patterns Other features this interacts with External APIs or services called Events emitted or consumed Extract facts, not opinions Include source file paths for every fact Use code identifiers and exact strings from source Do NOT paraphrase - quote when possible Do NOT decide what's important - extract everything relevant Do NOT format for end users - output is for docs team