> 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/phase40-session14-ministry-builder-and-pantheon/tasks.md).

# Task Checklist

**Session ID**: `phase40-session14-ministry-builder-and-pantheon` **Total Tasks**: 23 **Estimated Duration**: 3-4 hours **Created**: 2026-07-03

***

Legend: `[x]` completed; `[ ]` pending; `[P]` parallelizable; `[SNNMM]` session ref; `TNNN` task ID.

***

## Setup (2 tasks)

* [x] T001 \[S4014] Verify existing Pantheon, model-intelligence, provider asset, and demo fixture contracts before edits (`src/components/hermes/hermes-pantheon.tsx`, `src/lib/hermes-model-intelligence.ts`, `src/lib/hermes-provider-assets.ts`, `src/lib/hermes-demo-data.ts`)
* [x] T002 \[S4014] Prepare Ministry test fixtures for live/demo model intelligence, uncovered provider logo fallback, empty lineup, and existing Pantheon admin actions (`src/components/hermes/ministry/__tests__/ministry-builder.test.tsx`, `src/components/hermes/__tests__/hermes-sections.test.tsx`)

***

## Foundation (7 tasks)

* [x] T003 \[S4014] \[P] Create shared Ministry seat, draft, action, and component prop types from Hermes model intelligence contracts (`src/components/hermes/ministry/ministry-types.ts`)
* [x] T004 \[S4014] \[P] Create pure lineup helpers for recommended reset, core assignment, expert assignment, duplicate prevention, max expert enforcement, removal, and stable ordering (`src/components/hermes/ministry/ministry-lineup.ts`)
* [x] T005 \[S4014] \[P] Create safe provider logo renderer using `getHermesProviderAsset` with accessible label fallback for uncovered providers (`src/components/hermes/ministry/provider-logo.tsx`)
* [x] T006 \[S4014] Create model palette component with draggable rows, click-select state, bounded metric labels, product-facing copy, and platform-appropriate accessibility labels, focus management, and input support (`src/components/hermes/ministry/model-palette.tsx`)
* [x] T007 \[S4014] Create council seats component for core and bounded expert targets with click assignment, drop assignment, remove controls, empty states, and platform-appropriate accessibility labels, focus management, and input support (`src/components/hermes/ministry/council-seats.tsx`)
* [x] T008 \[S4014] \[P] Create analytics shell and save/copy shell that summarize current lineup state without final MoA config or direct save claims (`src/components/hermes/ministry/ministry-analytics-shell.tsx`, `src/components/hermes/ministry/ministry-save-copy-shell.tsx`)
* [x] T009 \[S4014] Create Ministry builder composer with hero asset, query states, armed/drag state cleanup on re-entry, reset behavior, and responsive layout constraints (`src/components/hermes/ministry/ministry-builder.tsx`, `src/components/hermes/ministry/index.ts`)

***

## Implementation (7 tasks)

* [x] T010 \[S4014] Pass live/demo model-intelligence view into Pantheon without changing existing Hermes bridge fetch ownership (`src/components/hermes/hermes-read-only-page.tsx`)
* [x] T011 \[S4014] Integrate Ministry builder as the first full-width Pantheon section without decorative nested cards or persona grid regressions (`src/components/hermes/hermes-pantheon.tsx`)
* [x] T012 \[S4014] Wire click model then click seat assignment through shared lineup helpers with duplicate-trigger prevention while assignment state changes (`src/components/hermes/ministry/ministry-builder.tsx`, `src/components/hermes/ministry/council-seats.tsx`)
* [x] T013 \[S4014] Wire drag-to-seat assignment through shared lineup helpers with duplicate-trigger prevention while assignment state changes (`src/components/hermes/ministry/model-palette.tsx`, `src/components/hermes/ministry/council-seats.tsx`)
* [x] T014 \[S4014] Implement Escape cancel, remove seat, and recommended reset behavior with state reset or revalidation on re-entry (`src/components/hermes/ministry/ministry-builder.tsx`, `src/components/hermes/ministry/council-seats.tsx`)
* [x] T015 \[S4014] Enforce max expert count and no duplicate core/expert seats across pointer and keyboard paths with clear disabled states (`src/components/hermes/ministry/ministry-lineup.ts`, `src/components/hermes/ministry/ministry-builder.tsx`)
* [x] T016 \[S4014] Preserve existing persona create, edit, delete, install defaults, validate, model selection, template seeding, and sync state after Ministry mounts (`src/components/hermes/hermes-pantheon.tsx`, `src/components/hermes/__tests__/hermes-sections.test.tsx`)

***

## Testing (7 tasks)

* [x] T017 \[S4014] \[P] Test pure lineup helpers for recommended lineup, assignment, duplicate prevention, max expert enforcement, removal, reset, empty input, and stable ordering (`src/components/hermes/ministry/__tests__/ministry-lineup.test.ts`)
* [x] T018 \[S4014] \[P] Test Ministry builder rendering, hero alt text, provider logo fallback, loading/empty/error/demo states, and product-facing copy boundaries (`src/components/hermes/ministry/__tests__/ministry-builder.test.tsx`)
* [x] T019 \[S4014] Test click assignment, Escape cancel, remove seat, reset, duplicate prevention, and max expert disabled state (`src/components/hermes/ministry/__tests__/ministry-builder.test.tsx`)
* [x] T020 \[S4014] Test drag/drop assignment event paths and shared duplicate/max expert rules (`src/components/hermes/ministry/__tests__/ministry-builder.test.tsx`)
* [x] T021 \[S4014] Test Pantheon integration and existing persona workflow preservation after Ministry renders (`src/components/hermes/__tests__/hermes-sections.test.tsx`)
* [x] T022 \[S4014] Test Hermes Pantheon route smoke for Ministry visibility and mobile layout stability (`tests/e2e/hermes-agent.spec.ts`)
* [x] T023 \[S4014] Run focused checks and ASCII/LF validation for touched files (`bunx vitest run src/components/hermes/ministry/__tests__/ministry-lineup.test.ts src/components/hermes/ministry/__tests__/ministry-builder.test.tsx src/components/hermes/__tests__/hermes-sections.test.tsx src/lib/__tests__/hermes-model-intelligence.test.ts src/lib/__tests__/hermes-provider-assets.test.ts`, `bun run typecheck`, `perl -ne 'exit 1 if /[^\x00-\x7F]/' .spec_system/specs/phase40-session14-ministry-builder-and-pantheon/spec.md .spec_system/specs/phase40-session14-ministry-builder-and-pantheon/tasks.md`)

***

## Completion Checklist

* [x] All tasks marked `[x]`
* [x] All tests and checks passing
* [x] All files ASCII-encoded with LF line endings
* [x] implementation-notes.md updated
* [x] Ready for `creview` (next step in the implement -> creview -> validate sequence)

***

## Next Steps

Run the `creview` workflow step.


---

# 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/phase40-session14-ministry-builder-and-pantheon/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.
