> 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/sessions/phase29-session11-industry-events-rollup/tasks.md).

# Task Checklist

**Session ID**: `phase29-session11-industry-events-rollup` **Total Tasks**: 21 **Estimated Duration**: 3-4 hours **Created**: 2026-06-21

***

## Legend

* `[x]` = Completed
* `[ ]` = Pending
* `[P]` = Parallelizable (can run with other \[P] tasks)
* `[SNNMM]` = Session reference (NN=phase number, MM=session number)
* `TNNN` = Task ID

***

## Progress Summary

| Category       | Total  | Done   | Remaining |
| -------------- | ------ | ------ | --------- |
| Setup          | 2      | 2      | 0         |
| Foundation     | 5      | 5      | 0         |
| Implementation | 10     | 10     | 0         |
| Testing        | 4      | 4      | 0         |
| **Total**      | **21** | **21** | **0**     |

***

## Setup (2 tasks)

Initial configuration and environment preparation.

* [x] T001 \[S2911] Verify analyzer state, completed Session 04 prerequisite, current Phase 29 progress, and Session 11 stub scope before implementation (`.spec_system/PRD/phase_29/session_11_industry_events_rollup.md`)
* [x] T002 \[S2911] Inspect current news publisher metadata, corroboration helper, demand-cluster pattern, collector insertion point, schema branch, static Brief projection, QA, and payload-size paths (`scripts/extensions/trend-finder/collector.ts`)

***

## Foundation (5 tasks)

Core structures and base implementations.

* [x] T003 \[S2911] \[P] Create industry-event helper contract with schema-validated input, row/status constants, bounds, tokenization, deterministic ordering, and explicit unavailable output (`scripts/extensions/trend-finder/industry-events.ts`)
* [x] T004 \[S2911] \[P] Extend analyst contracts for optional industry-event brief candidates and validator-gated output with deterministic fallback on invalid or unavailable runtime output (`scripts/lib/ai-runtime/trend-analyst.ts`)
* [x] T005 \[S2911] \[P] Add `TrendIndustryEvent` constants, schema, defaults, type exports, and legacy-safe `industryEvents` root branch (`src/extensions/trend-finder/schema.ts`)
* [x] T006 \[S2911] Add publisher identity extraction from source-local publisher metadata and public URL host fallback with ambiguous-publisher suppression (`scripts/extensions/trend-finder/industry-events.ts`)
* [x] T007 \[S2911] Add industry-event view/export model types, empty copy, labels, tones, and bounded citation projection (`src/extensions/trend-finder/view-model.ts`)

***

## Implementation (10 tasks)

Main feature implementation.

* [x] T008 \[S2911] Implement news-evidence selection for `rss-ai-news` and `google-ai-news` only with validated filters, deterministic ordering, and explicit loading, empty, error, and unavailable states (`scripts/extensions/trend-finder/industry-events.ts`)
* [x] T009 \[S2911] Implement shared entity/title token clustering with bounded pagination, citation limits, related-topic matching, and deterministic event IDs (`scripts/extensions/trend-finder/industry-events.ts`)
* [x] T010 \[S2911] Enforce the two-independent-publisher gate by reusing corroboration-style entity evidence and suppressing single-publisher events before payload publication (`scripts/extensions/trend-finder/industry-events.ts`)
* [x] T011 \[S2911] Merge accepted AI industry-event briefs with event rows using real event IDs and evidence IDs only, with exhaustive validation errors and fallback summaries (`scripts/lib/ai-runtime/trend-analyst.ts`)
* [x] T012 \[S2911] Wire collector industry-event derivation after scored topics and before payload validation with duplicate-trigger prevention for repeated run assembly and safe warning fallback (`scripts/extensions/trend-finder/collector.ts`)
* [x] T013 \[S2911] Project industry events into live view models and Brief export documents with bounded text, safe public links, and cited evidence labels (`src/extensions/trend-finder/brief-export-model.ts`)
* [x] T014 \[S2911] Render a static Brief industry-events section with compact rows, publisher-count labels, cited evidence details, and a clear empty state (`scripts/extensions/trend-finder/static-brief-renderer.ts`)
* [x] T015 \[S2911] Add static Brief QA for `industryEvents` with private-field and private-string rejection mapped to blocking export issues (`scripts/extensions/trend-finder/static-brief-qa.ts`)
* [x] T016 \[S2911] Add payload-size tracking for `data.industryEvents` with branch size visibility in normal payload reports (`scripts/extensions/trend-finder/measure-payload-size.ts`)
* [x] T017 \[S2911] Document the industry-events pipeline step, source boundary, two-publisher rule, Brief surface, and privacy behavior without claiming new sources or raw article access (`docs/extensions/trend-finder-pipeline.md`)

***

## Testing (4 tasks)

Verification and quality assurance.

* [x] T018 \[S2911] \[P] Add industry-event unit tests for news-source filtering, publisher identity, single-publisher suppression, two-publisher publication, fallback clustering, row bounds, ordering, and AI merge rejection (`scripts/extensions/trend-finder/__tests__/industry-events.test.ts`)
* [x] T019 \[S2911] \[P] Add collector, analyst, and schema tests proving safe integration, legacy defaults, no source widening, invalid AI rejection, warning fallback, and valid `industryEvents` payload output (`scripts/extensions/trend-finder/__tests__/collector.test.ts`)
* [x] T020 \[S2911] \[P] Add view-model, static Brief renderer, static Brief QA, and payload-size tests proving rendered events, empty states, citation bounds, branch tracking, and privacy cleanliness (`src/extensions/trend-finder/__tests__/view-model.test.ts`)
* [x] T021 \[S2911] Run focused Vitest suites, `bun run typecheck:scripts`, payload-size reporting, static Brief privacy checks, and ASCII validation for session files (`package.json`)

***

## Completion Checklist

Before marking session complete:

* [x] All tasks marked `[x]`
* [x] All tests passing
* [x] All files ASCII-encoded
* [x] implementation-notes.md updated
* [x] Ready for the validate workflow step

***

## Next Steps

Run the implement workflow step to begin AI-led implementation.


---

# 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/sessions/phase29-session11-industry-events-rollup/tasks.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.
