← ClaudeAtlas

reflect-featurelisted

Run the feature-reflector subagent (Layer 4b — top-down product-owner reflection) over one composed feature flow. Produces `lineage/{repo}/feature-reflections/detail/{F-NNN}.yaml` with a stepped-back product-owner narrative + 5-15 falsifiable user-facing hypotheses + per-hypothesis verdicts (confirmed / contradicted / partial / probe-needed) traced through the implementation chain. Contradictions are surfaced as bug-candidate / caveat-candidate findings — cross-file intent-vs-implementation drifts no single sidecar can see in isolation. Per APPROACH.md section 15 + rev-5 LSN-020 case-law.
opendatadiscovery/odd-team · ★ 0 · AI & Automation · score 75
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