> For the complete documentation index, see [llms.txt](https://ai-os-and-trend-finder.gitbook.io/ai-os-and-trend-finder-docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://ai-os-and-trend-finder.gitbook.io/ai-os-and-trend-finder-docs/.spec_system/archive/phases/phase_29/session_03_reception_signal_aggregate_only.md).

# Session 03: Reception Signal Aggregate-Only

**Session ID**: `phase29-session03-reception-signal-aggregate-only` **Status**: Not Started **Estimated Tasks**: \~12-25 **Estimated Duration**: 2-4 hours

***

## Objective

Give Trend Finder a concept of reception polarity without crossing the comment-body boundary. Maps comparison item 1.1, aggregate-only slice.

***

## Scope

### In Scope (MVP)

* Add a `receptionSignal` derived field with states `endorsed`, `contested`, `ratioed`, `mixed`, and `unavailable`.
* Compute only from already-collected aggregate metrics where defensible (for example HN comment-to-point ratio or Reddit upvote ratio if exposed); everything else stays `unavailable`.
* Add a `contested-reception` risk flag in `risk-flags.ts`.
* Cap `ratioed` / `contested` topics below `act_now`, consistent with existing stale/cooling caps.
* Fill the reception column in the Session 02 grid.
* Add schema defaults and confirm payload safety.

### Out of Scope

* Reading, caching, summarizing, or classifying any comment body.
* Any new source or media boundary.

***

## Prerequisites

* [ ] Session 02 complete (polarity grid exists with a reserved reception column).

***

## Deliverables

1. `receptionSignal` field computed from aggregate metrics only, defaulting to `unavailable`.
2. `contested-reception` risk flag and act-now caps for ratioed/contested.
3. Reception column filled in the live and static polarity grid.
4. Tests proving no comment body enters payload or trace.

***

## Success Criteria

* [ ] A high-engagement hostile-ratio fixture is flagged `ratioed` and capped below `act_now`.
* [ ] Topics with no defensible aggregate metric stay `unavailable`.
* [ ] Tests prove no comment body enters the payload or Engine Replay trace.
* [ ] Payload budget and privacy scans remain green.

***

## Key Files

* `scripts/lib/ai-runtime/source-breakdown.ts`
* `scripts/lib/ai-runtime/risk-flags.ts`
* `scripts/lib/ai-runtime/scoring.ts`
* `src/extensions/trend-finder/schema.ts`
* `src/extensions/trend-finder/view-model.ts`
* `scripts/extensions/trend-finder/static-brief-renderer.ts`

***

## Comparison Notes (folded from comparison plan)

**Effort:** Medium. **Boundary risk:** Low aggregate-only; Medium if comment bodies are ever proposed.

**1.1 Reception / sentiment layer.** TrendingAI harvests up to 20 top-by-likes replies for validated X feature posts and high-engagement lab-X candidates, classifies reply sentiment toward the parent feature, rolls up `pos%/neg%`, and flags RATIOED posts when `pos_pct < 40%` and `total >= 10`. It also has an older HN-comment reception classifier and separates tutorial-hype from actual adoption. Trend Finder currently scores attention volume and diversity but not reception polarity. Adopt only the aggregate-safe slice: add `receptionSignal` states `endorsed`, `contested`, `ratioed`, `mixed`, and `unavailable`; compute from reviewed aggregate metrics where defensible; keep comment-body collection blocked; add `contested-reception`; cap contested or ratioed topics below `act_now`.

**TrendingAI source pointers.** `src/harvesters/x-replies.ts`, `src/comment-sentiment.ts`, `prompts/feature-sentiment.md`.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://ai-os-and-trend-finder.gitbook.io/ai-os-and-trend-finder-docs/.spec_system/archive/phases/phase_29/session_03_reception_signal_aggregate_only.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
