Skip to content

Investor workspaces: the leftovers, built up to the owner's line (D494–D499) #1023

Description

@guillaumelauzier

S1: Task for slot S07, moved from S16 at the owner's request (wave-9 item 10)

On main (f701a32). Not started. The investor Deals, Research, Portfolio and Network workspaces came from six PRs recorded as D460–D465. Session 1 reviewed only #871 (D465), and this slot owns all six now. D491–D493 were taken by other work, so this item's numbers start at D494.

First, read D460–D465 against the code. Anything they claim that the code does not do joins this item.

Then one PR per zone family (Deals, Research, Portfolio, Network), each built up to the owner's line. Canvas IDs are from design/canvases/integrated/Pages · Investor Deals.dc.html, … Research.dc.html, … Portfolio.dc.html and … Network.dc.html; the ops sit in frontend/src/workspaces/investorZoneActions.js.

  • The DD "Blocking" half and the section-weighting editor (the investor gap map's item 16; D466 names both as held). Blocking overlaps the IC panel's queue (Session 15's original T6): ask on this issue before building it. The weighting editor is large and needs an owner decision: build to the line.
  • ID1 Configure stages (:61); ID2 New batch run and Edit rubric (:78–79); IR1 Clear history (:252); IR4 theses (/research/markets); IP2 Parse review; IN3 Organizations, IN1 Add person (:208) and IN2 Offer one (:219). Build each up to its decision.
  • ID1 Save view (:62) needs a store (zone_saved_views) that frontend/src/workspaces/partnerZoneActions.js:41 would also use: ask on this issue before creating it.
  • IP1 Add follow-on (:169) stays admin-only.
  • "Rationale required": POST /api/ic/:uid/vote still accepts a null rationale on an ordinary vote (cloudflare-worker/src/routes/ic.ts:626; D461 left the requirement as the owner's call). Refuse it, or record why not.
  • IR2 New request (:263) and IR3 sit on research.ts's deals/* routes, which are slot S02's: leave the routes, and have the zone say what the button waits on.

Owner's line. Owner-decision items are built up to the line (standing rule (c)): everything that does not depend on the decision ships, and the screen and the PR body both name the decision still missing. Never invent the answer to one.

Never build the brief's item-7 figures (U1 per-subsidiary numbers, token margin, revenue per subsidiary, seat ids, guardrail counters by branch); LTV, subscription revenue, key reveal and expiry; or anything blocked on the owner or a credential. Where a screen implies one of these, it states the absence.

Tests. Every change ships with a test that fails on today's code; a regex over source text is not one. Mutation-check each assertion both ways.

Coordinate with. research.ts's deals/* routes are slot S02's. In ic.ts, edit only your lines: the IC roster and quorum are not this slot's.

Owns. For the zone family each PR covers: investorZoneActions.js, investorZoneFilters.js, the pages under frontend/src/pages/investor/, your lines of routes/deals.ts and routes/ic.ts, their tests, and that PR's D-entry.

Number. D494 onward (D494–D499), one per PR; take them in order and leave gaps rather than reuse. Any migration comes from your range (343–345 are unassigned); re-measure the highest migration on disk before naming one (369 on f701a32).

Done when. One green draft PR per zone family, one at a time. Each says "Part of" this issue, and the last one closes it. Follow AGENTS.md and CLAUDE.md.


Generated by Claude Code

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    needs-decisionWaiting on the owner's callslot:S07Work queue of slot S07state:reviewDraft PR open; CI and review

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions