reflect-featurelisted
Install: claude install-skill opendatadiscovery/odd-team
# /reflect-feature — top-down product-owner reflection (Layer 4b, rev 5)
Layer 4b of the agentic-code-ontology pipeline. Where `feature-flow-builder` (Layer 4a) composes the chain bottom-up from sidecar `upstream_callers` + `downstream_side_effects`, this skill spawns the **`feature-reflector`** subagent to run the complementary **top-down pass**: step back from the assembled chain, look at the feature as a product owner, generate falsifiable user-facing hypotheses, and validate each by tracing the implementation chain.
The reflection answers: *"this feature is named X, it takes these inputs, it returns these outputs, it dispatches across these view modes — what would a user expect each of those parts to do, and does the implementation deliver it?"*. Contradictions become the highest-priority bug-candidate or caveat-candidate findings; probe-needed verdicts emit probe-skeletons; doc-claim-vs-code mismatches surface as DOC-GAP candidates.
The canonical catch (LSN-020): Activity Feed's `userIds` query parameter promises filtering by which-user-performed-the-action; the implementation filters by `USER_OWNER_MAPPING.OWNER_ID.in(userIds)`. A `userIds=[42]` hypothesis traced through the chain surfaces the contradiction: users without owner mappings vanish from the filter; owner-user association changes retroactively rewrite past attribution; the actual actor column (`activity.created_by`) is JOINED but never FILTERED.
## Argument forms
| Form | Behaviour |
|---|---|
| `/reflec