Skip to content

D-API-0: map the documented API surface onto deliverables - #40

Merged
AdaWorldAPI merged 4 commits into
mainfrom
ccr-1d749cc5-q8s5qs
Oct 21, 2026
Merged

AdaWorldAPI merged 4 commits into
mainfrom
ccr-1d749cc5-q8s5qs

Conversation

@AdaWorldAPI

Copy link
Copy Markdown
Owner

What

  • The map. data/hubspot/surface_map.tsv assigns each of the 140 spec families of HubSpot's documented API to the D-id that owns it, or to UNPLANNED with a reason.
    • A spec family groups one function across versions. surface::family strips the directory, .json and the version suffix, so v3/crm-contacts-v3.json and crm-contacts-v2026-09.json are both crm-contacts.
  • The count. hubspo-harvest deliverables <surface.tsv> <map.tsv> counts functions per D-id: current, legacy-only and beta-only. A family with no row is an error, never dropped.
  • The test. It pins the committed map to the committed data:
    • every family in the surface has a row;
    • no row names a family that is not in the surface;
    • every D-id is on STATUS_BOARD;
    • the functions sum to 1,518.
  • Judgement call. The mapping is my judgement, recorded so each row can be argued with. Object CRUD for every object type, including types with no concept such as courses and listings, goes to D-API-1. That is why D-API-1 holds a third of the surface.

Result (measured 2026-10-20)

deliverable functions
D-API-1 object CRUD, associations, properties, pipelines, owners 545
D-MKT-4 CMS 285
UNPLANNED 134
D-COM-1 commerce 70
D-MKT-2 marketing email 59
D-MAIL-5 shared inbox 47
D-QRY-2 lists 32
D-QRY-6 reports 30
… 26 more D-ids 316
total 1,518

The full table is in LATEST_STATE.

Unplanned (ISS-SURFACE-UNPLANNED, operator decision): 134 functions in 11 groups.

  • marketing events 37
  • app platform 22 (CRM cards, extensions, feature flags, uninstall hooks)
  • file manager 19
  • partner program 14
  • custom behavioural events 12
  • portal limits 9
  • record tags 6
  • answer-engine optimisation 5
  • data-studio ingestion 4
  • deal splits and forecasts 4
  • API metadata 2

The board also marks D-ONT-6 and D-API-0 shipped (#38, #39).

Verification

  • cargo fmt --check, clippy -D warnings and cargo test --workspace all pass.
  • Seven disable runs, all red: unmapped family, duplicate row, version-suffix strip, legacy-only by page slug, D-id not on the board, missing row, stale row.

Cross-session claim: Linear EXO-50 session_01PPcakjk7ioQsnasmNDtc5z/005.


Generated by Claude Code

data/hubspot/surface_map.tsv assigns each of the 140 spec families to the
D-id that owns it, or UNPLANNED with a reason. hubspo-harvest deliverables
counts functions per D-id (current, legacy-only, beta-only) and refuses a
family with no row. A test pins the committed map to the committed surface
and to STATUS_BOARD: every family mapped, no stale row, every D-id real,
1,518 functions in total.

Largest owners: D-API-1 object CRUD 545, D-MKT-4 CMS 285, D-COM-1
commerce 70, D-MKT-2 marketing email 59. 134 functions in 11 groups have
no deliverable: ISS-SURFACE-UNPLANNED. D-ONT-6 and D-API-0 marked shipped
(#38, #39).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PPcakjk7ioQsnasmNDtc5z
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PPcakjk7ioQsnasmNDtc5z
@AdaWorldAPI
AdaWorldAPI marked this pull request as ready for review October 21, 2026 00:03
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 21, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-21T00:05:48.953602Z 893b644 Draft marked ready
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 893b6449ca

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread crates/hubspo-harvest/src/surface.rs
A beta endpoint whose reference page also exists in legacy, with no current
counterpart, was counted as legacy-only and again as beta-only. 12 such
pages (six workflow, six form pages) inflated D-FLOW-1 and D-MKT-1 by six
each and the total to 1,518. Beta-only now excludes pages legacy already
has: 1,506 distinct functions, 86 beta-only. The unit test gains the twin
case; board figures corrected where they cited 1,518 or 98 beta-only.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PPcakjk7ioQsnasmNDtc5z
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PPcakjk7ioQsnasmNDtc5z
@AdaWorldAPI
AdaWorldAPI merged commit b709a28 into main Oct 21, 2026
2 checks 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.

2 participants