> For the complete documentation index, see [llms.txt](https://faction-os.gitbook.io/faction-os-docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://faction-os.gitbook.io/faction-os-docs/.spec_system/archive/sessions/phase23-session06-battlefield-camp-layer/tasks.md).

# Task Checklist

**Session ID**: `phase23-session06-battlefield-camp-layer` **Total Tasks**: 22 **Estimated Duration**: 3-4 hours **Created**: 2026-07-05

***

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

***

## Setup (3 tasks)

* [x] T001 \[S2306] Verify analyzer state, completed prerequisites, package context, and base commit for the session (`.spec_system/specs/phase23-session06-battlefield-camp-layer/spec.md`)
* [x] T002 \[S2306] Review existing battlefield board layering, hero token z-order, empty-terrain clearing, and reduced-motion hooks (`apps/web/src/components/battlefield/Battlefield.tsx`)
* [x] T003 \[S2306] Review Quest Board camp focus and Banish store actions before wiring battlefield callbacks (`apps/web/src/store/useGameStore.ts`)

***

## Foundation (5 tasks)

* [x] T004 \[S2306] Create `CampLayerProps`, tier copy, test-id helpers, and presentation-only component shell (`apps/web/src/components/battlefield/CampLayer.tsx`)
* [x] T005 \[S2306] Implement deterministic sector-cell placement and entrenched edge-placement helpers (`apps/web/src/components/battlefield/CampLayer.tsx`)
* [x] T006 \[S2306] Render native camp marker buttons with accessible names, tier labels, HP chips, issue-count chips, and sector labels (`apps/web/src/components/battlefield/CampLayer.tsx`)
* [x] T007 \[S2306] Add sibling dry Banish controls without nesting interactive elements, delegating mutation behavior to props (`apps/web/src/components/battlefield/CampLayer.tsx`)
* [x] T008 \[S2306] Expose layer, count, individual camp, HP, issue-count, tier, placement, and reduced-motion data hooks (`apps/web/src/components/battlefield/CampLayer.tsx`)

***

## Implementation (9 tasks)

* [x] T009 \[S2306] Add CSS-only camp marker, tier, chip, muted, edge-placement, and focus-visible styles (`apps/web/src/index.css`)
* [x] T010 \[S2306] Add reduced-motion camp styles that remove flicker, pulse, travel, and looping motion while preserving static labels (`apps/web/src/index.css`)
* [x] T011 \[S2306] Derive ranked visible camps from the existing game projection, sectors, Quest Board issue context, and visible hero count (`apps/web/src/components/battlefield/Battlefield.tsx`)
* [x] T012 \[S2306] Wire camp inspection to `focusQuestBoardCamp` with camp id, issue ids, sector label, and tier label (`apps/web/src/components/battlefield/Battlefield.tsx`)
* [x] T013 \[S2306] Wire dry Banish entry to focus the camp first and then call `banishQuestBoardCamp` with existing duplicate-trigger protection (`apps/web/src/components/battlefield/Battlefield.tsx`)
* [x] T014 \[S2306] Insert `CampLayer` between empty-terrain clearing and hero tokens with a stable z-index band below heroes (`apps/web/src/components/battlefield/Battlefield.tsx`)
* [x] T015 \[S2306] Preserve empty-terrain clear-selection behavior when camps are present and when no hero is selected (`apps/web/src/components/battlefield/Battlefield.tsx`)
* [x] T016 \[S2306] Add Champion Mode copy and attributes for solo and duo rosters without showing a repository-wide debt counter (`apps/web/src/components/battlefield/CampLayer.tsx`)
* [x] T017 \[S2306] Keep camp marker copy product-facing and free of raw issue details, diagnostics, absolute paths, or debug wording (`apps/web/src/components/battlefield/CampLayer.tsx`)

***

## Testing (5 tasks)

* [x] T018 \[S2306] Add Battlefield tests for camp rendering, accessible names, tier, HP, issue-count chips, and selector ordering (`apps/web/tests/Battlefield.test.tsx`)
* [x] T019 \[S2306] Add Battlefield tests for inspect activation, keyboard activation, dry Banish callback entry, and empty-terrain clearing (`apps/web/tests/Battlefield.test.tsx`)
* [x] T020 \[S2306] Add Battlefield tests for Champion Mode limits, z-order below hero tokens, reduced-motion static equivalents, and entrenched muted or edge placement (`apps/web/tests/Battlefield.test.tsx`)
* [x] T021 \[S2306] Run focused web verification for battlefield rendering (`npm test -- apps/web/tests/Battlefield.test.tsx`)
* [x] T022 \[S2306] Run typecheck, formatting, ASCII, and LF checks for changed session files (`npm --workspace @factionos/web run typecheck`, `npm run format:check`, `git diff --check`)

***

## 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 `implement` 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://faction-os.gitbook.io/faction-os-docs/.spec_system/archive/sessions/phase23-session06-battlefield-camp-layer/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.
