Skip to content

Docs updates - #358

Merged
conor-iqm merged 8 commits into
iqmcorp:mainfrom
conor-iqm:docs-updates
Oct 15, 2026
Merged

conor-iqm merged 8 commits into
iqmcorp:mainfrom
conor-iqm:docs-updates

Conversation

@conor-iqm

Copy link
Copy Markdown
Collaborator

No description provided.

conor-iqm and others added 8 commits October 15, 2026 09:38
Both occurrences of Political proposal statusId (in the shared
"Proposal resource properties" table and in Get list of proposals)
were labeled/wired as Plan status ID, using the 2-value planStatus
enum. A proposal's real statusId comes from tblm_proposals via the
full ProposalStatusEnum (draft/ready/expired/processing/converted/
failed), confirmed against PoliticalPlannerDAO's query. Plan status
(draft/ready only) is a separate, correctly-scoped concept used by
the actual Plan resource and Get list of Political plans.

Also fills out strategyTypes.ts, which only had 2 of the 5 real
values (now includes Balanced, Most Economical, Custom), per the
live "Get strategy types" response.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Converts the markdown table to HTML and inlines the full details and
targeting objects (matching PlanDetails/PlanTargeting, the same
classes Create plan uses) instead of linking out to the shared plan
resource properties table. Also adds partyAffiliationSegments, which
was missing, and the channelTypes import it needs.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Found and fixed the same "(see plan resource properties)" shortcut in
three more political.mdx sections:

- Edit proposal: proposedCampaigns is now fully elaborated, and the
  outer table gains minCpm/maxCpm/minImpressions/minReach/minBudget,
  which were in the JSON example and EditProposalRequest but missing
  from the table entirely.
- Estimate plan reach: targeting is now fully elaborated. Along the
  way, found the request sample (copied from the controller's own
  stale @ExampleObject) used field names that don't exist on the real
  PlanTargeting class the endpoint actually deserializes to
  (whiteListedLocations/whiteListedAudienceIds/prebidSegmentIds vs.
  the real whiteListedLocation/whitelistedAudiences/prebidSegments) -
  sending that payload as documented would silently drop every one of
  those fields. Corrected the example to the real field names.
- Generate custom strategies: details/targeting/cva are now fully
  elaborated (CustomStrategyRequest extends PlanRequest, confirmed in
  source), and added a Request sample, which this endpoint didn't
  have at all before.

Checked the rest of political.mdx, cross-screen.mdx, hcp.mdx, and
guidelines/planner-api.mdx for the same pattern - these were the only
three.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
- hcp.mdx: Get targeting graphs' creativeTypeDistribution.creativeTypeId
  was completely bare (no link, no widget).
- guidelines/planner-api.mdx: the 4 Proposal summary endpoints (reach/
  impressions, device type, channel type, bid landscape) all linked
  their creativeTypeIds to master-api's unrelated RTB creative types
  list instead of creative-api's, with no widget. CreativeVO (shared
  by all 4) has no distinguishing validation, and every other
  creativeTypeIds field in this file and across planner-api uses
  creative-api's list, so this was a stale/copy-pasted link, not an
  intentional distinction.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
PoliticalStrategyResponseVO is the same type Get list of strategies
returns, so this mirrors that section's table exactly. Also fills in
duration and proposalId in the Response 200 example, which the real
VO has but the example was missing.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Per the 2026-10-14 content-guidelines decision, "Custom Voter" stays
capitalized but "audience" is lowercase, matching Matched audience and
Campaign audience (replacing the old fully-capitalized "Custom Voter
Audience"). Fixed every prose/heading instance across cva-audience.mdx,
audience-segments.mdx, political.mdx, the MCP tool index partials, and
the MCP audience tutorial, plus the audienceTypes EnumWidget label.

Left two things untouched: static-audience.mdx's two "Custom Voter
Audience" JSON values, which are the literal AudienceTypeEnum
displayName from audience-api (confirmed in source) and not something
the style guide governs, and geo-farmed-audience-create.mdx's
"Healthcare Professionals NYC" example audience name, which is
unrelated user-chosen sample data.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Per the 2026-10-15 content-guidelines decision: spell out "Healthcare
Professional (HCP) Planner" on a page's first use, then "HCP Planner";
"HCP" alone can describe outputs ("HCP proposal"/"HCP plan", lowercase).

hcp.mdx used a third, non-compliant variant throughout - "Healthcare
proposal Planner" (15+ instances, including two H2 headings) - left
over from before the HCP Planner name was standardized. Normalized all
of it to "HCP Planner" (hcp.mdx is only ever embedded in
healthcare-vertical/planner.mdx, which already spells out the full
name before the partial renders, so the short form is correct
throughout). Also fixed two "HCP Planner ID" mentions on the Publish
endpoint to "HCP plan ID" - the surrounding sentences ("...a new plan
will be created") confirm the referent is a plan instance, not the
Planner tool - and fixed the "a HCP" -> "an HCP" article left by the
mechanical replacement.

Checked every other file that mentions the term (healthcare-vertical
pages, the MCP tools index partials, guidelines/planner-api.mdx) -
all already spell out the full name on first use per page and use
"HCP Planner" correctly afterward. Left two literal backend strings
untouched: the "Invalid file type to download HCP Plan" error message
(confirmed hardcoded in HcpPlannerServiceImpl) and the geo-farmed
audience example's "Healthcare Professionals NYC" sample name.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
File type ID description.
@conor-iqm
conor-iqm merged commit a47f479 into iqmcorp:main Oct 15, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant