πŸ›’ Platform Extensions

design-name-triage

Every GraphQL root field the platform-extensions design named that the code did not serve, with its decision, kept true by a CI gate.

Platform extensions β€” the phantom design names, triaged

What this is. The platform-extensions design (17 Β§3.2) promised GraphQL root fields by name. The audit of every row against the composed schema (handover 2026-09-20 Β§7.68) found 81 names in the queries and mutations cells that appeared nowhere in the code β€” six triaged by hand in Β§7.67, the rest recorded unclassified because the block mixed a naming class (fixed in the design) with a missing class (fixed in the code). Owner decision 12 (2026-10-13): "I want to triage each, but in the end implement all we need really!"

Method. Each name is measured against packages/core/src/lib/graphql/schema/schema.graphql: served under its own name β†’ delivered; the capability served under another root field of the same kind (checked by reading the delivered route and field, not by name similarity) β†’ naming; retired or rejected by the design itself β†’ retired; served by neither REST nor GraphQL β†’ build; not a concept of this platform β†’ drop.

This page is generated from the table in tools/scripts/design-name-triage-check.mjs (node tools/scripts/design-name-triage-check.mjs --write), and the gate β€” which CI runs in static-checks.yml β€” fails when the page and the table differ, when a delivered name stops being served, when an equivalent is not served as the same kind, when a name that is not delivered becomes served, when one of the 81 rows disappears, and when the build backlog grows.

Where it lives. The gate checks tools/scripts/design-name-triage.md in ever-co/ever-gauzy; the documentation site publishes the same page from ever-co/ever-gauzy-docs (website/docs/platform-extensions/design-name-triage.md), and node tools/scripts/design-name-triage-check.mjs --markdown prints it.

Totals: 81 names β€” 29 delivered, 49 served under another name, 2 retired, 0 to build, 1 dropped.

Design-doc amendments (pending: the design documents are not in this repository). Every naming row: replace the design name with the served one in 17 Β§3.2 (and in Appendix A’s derived counts). Every retired row: mark it (n-a β€” retired) beside its replacement. Every drop row: remove it, with the reason given.

To build (the backlog the gate counts, 0): none.

Dropped, for the owner to confirm (1): markEntitySubscriptionRead β€” an entity subscription carries no read state (the read state is the notification’s, see markEmployeeNotificationRead).

#design namekindclassserved equivalentdecision / note
1acceptOrderQuoteMutationdeliveredacceptOrderQuotenothing: the design row is right β€” pe/a3-order (Β§7.75)
2declineOrderQuoteMutationdelivereddeclineOrderQuotenothing: the design row is right β€” pe/a3-order (Β§7.75)
3generateOrderInvoiceMutationdeliveredgenerateOrderInvoicenothing: the design row is right β€” pe/a3-order (Β§7.75)
4requestOrderApprovalMutationdeliveredrequestOrderApprovalnothing: the design row is right β€” pe/a3-order (Β§7.75)
5sendOrderQuoteMutationdeliveredsendOrderQuotenothing: the design row is right β€” pe/a3-order (Β§7.75)
6approveSellerMutationnamingactivateSelleramend the design row to the served name β€” the explicit approval after every verification passed is activate (Β§7.76, item 7 closed)
7acceptTermsMutationdeliveredacceptTermsnothing: the design row is right β€” terms-acceptance surface
8addTeamMemberMutationdeliveredaddTeamMembernothing: the design row is right β€” organization team membership
9bulkCreateTenantRolesMutationdeliveredbulkCreateTenantRolesnothing: the design row is right β€” mirrors POST /roles/bulk
10createReportCategoryMutationdeliveredcreateReportCategorynothing: the design row is right β€” report categories
11deleteReportCategoryMutationdelivereddeleteReportCategorynothing: the design row is right β€” report categories
12updateReportCategoryMutationdeliveredupdateReportCategorynothing: the design row is right β€” report categories
13emailResetsQuerydeliveredemailResetsnothing: the design row is right β€” email reset requests
14invoiceByTokenQuerydeliveredinvoiceByTokennothing: the design row is right β€” public invoice link
15invoiceStatisticsQuerydeliveredinvoiceStatisticsnothing: the design row is right β€” invoice statistics
16payrollItemsQuerydeliveredpayrollItemsnothing: the design row is right β€” Β§7.68 named it the one with "no served equivalent at all"; served now
17updatePayrollItemMutationdeliveredupdatePayrollItemnothing: the design row is right β€” payroll items
18reportMenuItemsQuerydeliveredreportMenuItemsnothing: the design row is right β€” Β§7.68: only updateReportMenu was served then
19revokeTenantApiKeyMutationdeliveredrevokeTenantApiKeynothing: the design row is right β€” tenant API keys
20updateTenantApiKeyMutationdeliveredupdateTenantApiKeynothing: the design row is right β€” tenant API keys
21softDeleteTaskMutationdeliveredsoftDeleteTasknothing: the design row is right β€” the soft-delete pair
22taskByNumberQuerydeliveredtaskByNumbernothing: the design row is right β€” task by its project number
23termsAcceptancesQuerydeliveredtermsAcceptancesnothing: the design row is right β€” terms-acceptance surface
24upcomingSubscriptionBillingQuerydeliveredupcomingSubscriptionBillingnothing: the design row is right β€” a preview of the next billing, priced by the function the cycle bills with; REST GET /subscriptions/:id/upcoming-billing
25bulkCreateTagsMutationdeliveredbulkCreateTagsnothing: the design row is right β€” delivered: POST /tags/bulk + bulkCreateTags, every item the single create (POST /tags / createTag)
26bulkCreateTasksMutationdeliveredbulkCreateTasksnothing: the design row is right β€” delivered: POST /tasks/bulk + bulkCreateTasks, every item the single create (POST /tasks / createTask), numbered by its handler one item at a time
27bulkCreateExpensesMutationdeliveredbulkCreateExpensesnothing: the design row is right β€” delivered: POST /expense/bulk + bulkCreateExpenses, every item the single create (POST /expense / createExpense) on the bulk kernel
28bulkCreateTimeLogsMutationdeliveredbulkCreateTimeLogsnothing: the design row is right β€” delivered: POST /timesheet/time-log/bulk + bulkCreateTimeLogs, every item the manual-time create (addManualTime: policy guard, employee, date and overlap rules)
29bulkCreateOrganizationsMutationdeliveredbulkCreateOrganizationsnothing: the design row is right β€” delivered: POST /organization/bulk + bulkCreateOrganizations, every item the single create (OrganizationCreateCommand)
30bulkCreateUsersMutationdeliveredbulkCreateUsersnothing: the design row is right β€” delivered: POST /user/bulk + bulkCreateUsers, every item the single create (UserCreateCommand, its role checks), ids only in the answer
31createDepartmentMutationnamingcreateOrganizationDepartmentamend the design row to the served name β€” REST /organization-department
32updateDepartmentMutationnamingupdateOrganizationDepartmentamend the design row to the served name β€” REST /organization-department
33deleteDepartmentMutationnamingdeleteOrganizationDepartmentamend the design row to the served name β€” REST /organization-department
34createProjectMutationnamingcreateOrganizationProjectamend the design row to the served name β€” REST /organization-projects
35updateProjectMutationnamingupdateOrganizationProjectamend the design row to the served name β€” REST /organization-projects
36deleteProjectMutationnamingdeleteOrganizationProjectamend the design row to the served name β€” REST /organization-projects
37softDeleteProjectMutationnamingsoftDeleteOrganizationProjectamend the design row to the served name β€” the soft-delete pair
38projectModulesQuerynamingorganizationProjectModulesamend the design row to the served name β€” REST /organization-project-modules
39createProjectModuleMutationnamingcreateOrganizationProjectModuleamend the design row to the served name β€” REST /organization-project-modules
40updateProjectModuleMutationnamingupdateOrganizationProjectModuleamend the design row to the served name β€” REST /organization-project-modules
41deleteProjectModuleMutationnamingdeleteOrganizationProjectModuleamend the design row to the served name β€” REST /organization-project-modules
42createSprintMutationnamingcreateOrganizationSprintamend the design row to the served name β€” REST /organization-sprint
43updateSprintMutationnamingupdateOrganizationSprintamend the design row to the served name β€” REST /organization-sprint
44deleteSprintMutationnamingdeleteOrganizationSprintamend the design row to the served name β€” REST /organization-sprint
45createTeamMutationnamingcreateOrganizationTeamamend the design row to the served name β€” REST /organization-team
46updateTeamMutationnamingupdateOrganizationTeamamend the design row to the served name β€” REST /organization-team
47updateTeamMemberMutationnamingupdateOrganizationTeamEmployeeamend the design row to the served name β€” a member is an organization-team employee row
48removeTeamMemberMutationnamingdeleteOrganizationTeamEmployeeamend the design row to the served name β€” a member is an organization-team employee row
49teamJoinRequestsQuerynamingorganizationTeamJoinRequestsamend the design row to the served name β€” REST /organization-team-join
50createTeamJoinRequestMutationnamingcreateOrganizationTeamJoinRequestamend the design row to the served name β€” REST /organization-team-join
51acceptTeamJoinRequestMutationnamingacceptOrganizationTeamJoinRequestamend the design row to the served name β€” REST /organization-team-join
52createRecurringExpenseMutationnamingcreateOrganizationRecurringExpense, createEmployeeRecurringExpenseamend the design row to the served name β€” two resources: the organization and the employee recurring expense
53updateRecurringExpenseMutationnamingupdateOrganizationRecurringExpense, updateEmployeeRecurringExpenseamend the design row to the served name β€” two resources: the organization and the employee recurring expense
54deleteRecurringExpenseMutationnamingdeleteOrganizationRecurringExpense, deleteEmployeeRecurringExpenseamend the design row to the served name β€” two resources: the organization and the employee recurring expense
55authorizedUserQuerynamingmeamend the design row to the served name β€” the authenticated caller
56confirmEmailResetMutationnamingverifyEmailResetamend the design row to the served name β€” REST POST /email-reset/verify-change-email
57createTenantApiKeyMutationnaminggenerateTenantApiKeyPairamend the design row to the served name β€” a key is generated as a pair, shown once
58createTimeLogMutationnamingaddManualTimeamend the design row to the served name β€” Β§7.68: a time log a person files is manual time
59updateTimeLogMutationnamingupdateManualTimeamend the design row to the served name β€” Β§7.68
60customSmtpQuerynamingcustomSmtpSettingamend the design row to the served name β€” REST /smtp
61updateCustomSmtpMutationnamingupdateSmtpSettingamend the design row to the served name β€” REST /smtp
62importHistoryQuerynamingimportHistoriesamend the design row to the served name β€” the import ledger is a list
63invoiceHighestQuerynaminghighestInvoiceNumberamend the design row to the served name β€” REST GET /invoices/highest
64convertInvoiceToEstimateMutationnamingupdateInvoiceEstimateamend the design row to the served name β€” REST PUT /invoices/:id/estimate flips isEstimate
65sendEmailHistoryMutationnamingresendEmailHistoryamend the design row to the served name β€” an email history row is re-sent
66timesheetStatisticsQuerynamingtimeTrackingCounts, timeTrackingMembers, timeTrackingProjects, timeTrackingTasks, timeTrackingManualTimes, timeTrackingTimeSlots, timeTrackingActivitiesamend the design row to the served name β€” REST /timesheet/statistics/* is a family, served one field per route
67createIntegrationMutationnamingcreateIntegrationTenantamend the design row to the served name β€” an integration is configured per tenant; the integration catalogue is seeded, read-only
68updateIntegrationMutationnamingupdateIntegrationTenantamend the design row to the served name β€” as createIntegration
69deleteIntegrationMutationnamingdeleteIntegrationTenantamend the design row to the served name β€” as createIntegration
70updateIntegrationEntitySettingMutationnamingupdateIntegrationEntitySettingsamend the design row to the served name β€” the route writes the set
71integrationEntitySettingTiedQuerynamingintegrationEntitySettingsamend the design row to the served name β€” tied rows are read as IntegrationEntitySetting.tiedEntities; REST has no read route of its own
72authorizePaymentMutationnamingauthorizePaymentSessionamend the design row to the served name β€” payment reconnaissance (Β§7.68)
73cancelPaymentMutationnamingvoidPaymentSessionamend the design row to the served name β€” Β§3.6: POST /payments/:id/cancel is voidPaymentSession
74billSubscriptionNowMutationnamingbillSubscriptionamend the design row to the served name β€” REST POST /subscriptions/:id/bill
75swapSubscriptionPlanMutationnamingchangeSubscriptionPlanamend the design row to the served name β€” REST POST /subscriptions/:id/plan
76createStockAdjustmentMutationnamingadjustStockamend the design row to the served name β€” REST POST /stock-adjustments drafts; applyStockAdjustment applies
77markEmployeeNotificationReadMutationnamingupdateEmployeeNotification, markAllEmployeeNotificationsAsReadamend the design row to the served name β€” one notification: updateEmployeeNotification with isRead/readAt; all of the caller’s: the mark-all route
78deleteSellerOfferingMutationnamingwithdrawSellerOffering, softDeleteSellerOfferingamend the design row to the served name β€” an offering is withdrawn, never erased (Β§7.65 item 5, 8eaaa273c81): DELETE /seller-offerings/:id withdraws
79createShippingLabelMutationretiredrequestFulfillmentLabelmark the design row n-a (retired) β€” design-retired; a carrier label is requested for a shipment
80setProductVariantPriceMutationretiredupdateProductVariantPrice, bulkUpsertProductPricesmark the design row n-a (retired) β€” design-retired
81markEntitySubscriptionReadMutationdropβ€”drop from the design (listed for the owner) β€” an entity subscription carries no read state (the read state is the notification’s, see markEmployeeNotificationRead)

Edit this page

Copyright Β© 2023-Present Ever Co. LTD.Docs by Sourcey