Forte — FDP Cycle Backlog

Exhaustive, ordered list of every Feature Development Process cycle needed to close the gaps identified in forte_roadmap.md Section A. Each row below is one full {feature_name} that will get its own Step 1-4 planning docs and (where warranted) feature branch, run one at a time. Order reflects dependency and value judgment beyond item 1; only item 1 is confirmed — feel free to reshuffle the rest.

#Feature nameWhat it coversStep 1?
1forte_identity_signing✅ Done — see forte_identity_signing_step4_implementation_summary.md. Wire browser-key signed authorship into Forte's reply composer instead of always posting as anonymous "guest" — the flagged correctness issue. Confirmed first; scoped to the board view only now that the single-thread view is being deprecated (item 2) — no per-page-type split needed.Yes — approach choices for the board view specifically (reuse lazy_compose_signing.js as-is vs. eager-load vs. a Forte-native indicator)
2forte_deprecate_single_thread_view✅ Done — see forte_deprecate_single_thread_view_step4_implementation_summary.md. Deprecate, then remove, the single-thread Forte reader (/threads/{id}/forte, forte.php) in favor of board-view-only. Confirmed low-risk: nothing outside Forte links to this route, and the board view is already fully self-contained (no href back to it anywhere). Queued right after identity-signing so no later cycle builds more into a view about to be removed.Optional — no real solution ambiguity in "delete these files/route," but worth a Step 2 to record the rationale given it reverses several previously-shipped features (forte_step1-4, forte_reply, forte_keyboard_navigation's single-thread half)
3forte_compose_thread✅ Done — see forte_compose_thread_step4_implementation_summary.md. Wire the permanently-disabled "New" toolbar button to actually compose a new thread, reusing thread_compose_form.php (a different canonical form than the one forte_reply already reused). Board-view-only by the time this runs. Step 1 recommended reusing the Reply panel's toolbar-panel pattern; user chose a native <dialog> instead (Option C).Recommended — same "native vs. bolted-on" congruence question that came up for replies
4forte_reactions✅ Done — see forte_reactions_step4_implementation_summary.md. Like/Flag buttons on posts/threads, reusing the existing /api/apply_thread_tag / /api/apply_post_tag endpoints.Optional — straightforward reuse, low ambiguity
5forte_post_permalink✅ Done — see forte_post_permalink_step4_implementation_summary.md. A shareable direct link to one specific post (classic has /posts/{id}; Forte has none). Needs rework given item 2: the original idea assumed the single-thread view's own URL scheme — this now needs to resolve to /forte?selected=...-style restoration instead, similar to the existing new-reply highlight mechanism.Recommended — URL scheme and redirect-vs-direct-render are real choices
6forte_classic_nav_bridgeA way to reach classic-only pages from Forte (or back). Reverses a stated non-goal (forte_step2: "no link from Forte back to the standard page"), so this needs a deliberate decision, not just an implementation pass. Dependency note: may need to land alongside or before later identity/account-management polish, since /account/key itself is a classic-only page.Yes — this is a scope-reversal decision, not just a build
7forte_profiles✅ Done — see forte_profiles_step4_implementation_summary.md. Profile pages, user directory, and linking author names to profiles instead of plain text. Built Forte-native (not via the nav bridge): /forte/profiles/{slug}, /forte/user/{username}, /forte/users/, plus a quick-glance summary dialog on author-name click. "Approve user" deliberately excluded, deferred to item 11.Recommended — several viable approaches (full Forte-styled page vs. reusing classic's page via the nav bridge above)
8forte_tag_indexA browsable, shareable tag index (/tags/, /tags/{tag}) distinct from the board's filter-only folder tree.Optional — additive, low ambiguity
9forte_activity_feedA Forte-native view of classic's /activity/ recent-activity feed.Optional, but worth a quick Step 1 to scope what "activity" means in a paned layout
10forte_mobile_responsiveAn engineered (not pragmatic-fallback) mobile/narrow-viewport layout, including fixing the known Subject-column squeeze at 420px.Yes — genuine breakpoint/layout strategy trade-offs
11forte_user_approvalThe pending-user approval workflow (/users/pending/, approve endpoints) — administrative/moderator-facing.Recommended — permissions and surface-area questions
12forte_agent_repliesAgent responses to comments and posts — requesting/viewing an automated agent reply on a post or thread (classic's request-agent-reply action). Narrowed 2026-09-16: originally bundled with the Codex handoff/approval workflow; split out per explicit user direction so each gets its own cycle — see item 14.Recommended — request/visibility UX choices, but smaller than the original bundled item
| 13 | `forte_thread_selection_url_sync` | ✅ Done — see `forte_thread_selection_url_sync_step4_implementation_summary.md` (grew beyond the original ask to also close the server-side "flash of wrong state" gap for permalinks/reply-redirects). Push `selected={threadId}` to the URL bar on every plain thread-row click/arrow-key selection, mirroring the `pushStateIfChanged(urlForState(...))` pattern tag/sort changes already use — today only tag/sort changes update the URL; selecting a thread doesn't, so a reload loses it. The "restore on load" half already exists (the board already reads `?selected=` on load for the reply-redirect landing case) — this only adds the missing "push on click" half. Related to, but independent of, `forte_post_permalink` (item 5): permalinks are explicit hrefs and work the same regardless of whether this lands. Requested directly by the user, 2026-09-15, to prepare for later — not scoped into item 5. | Optional — small, mirrors an already-proven pattern in the same file |
| 14 | `forte_codex_handoff_workflow` | The Codex handoff/approval workflow (classic's `request-codex-handoff` action and the approval steps after it) — administrative/agent-operator-facing. Split out of the original bundled item 12 (`forte_agent_codex_workflow`) per explicit user direction, 2026-09-16, so agent-replies and Codex handoff each get their own cycle. | Yes — the largest, least-defined item on this list |

Total: 14 FDP cycles.

Not on this list (handled outside FDP)

Per forte_roadmap.md Section C, these rough edges are small enough to fix directly (as we did for the composer focus/scroll and new-reply-highlight polish) rather than running a full cycle each: the dead New/Refresh buttons (✅ New resolved by cycle #3, forte_compose_thread; Refresh still has no clear job), missing empty-state messaging, no error-surfacing in the composer JS, and the missing aria-live announcements. Flagging them here only so nothing from the roadmap silently disappears — revisit as direct fixes whenever convenient, or promote any of them to a full cycle later if they turn out bigger than expected.

Next step

Start Step 1 for forte_identity_signing whenever you're ready.