Proofreading report
Polish pass date: 2026-06-04
Branch: CNT-1250
Scope: docs/full-integration/**/*.md
Files edited in this pass
| File | Summary of changes |
|---|---|
introduction/index.md | All links bolded; headings to sentence case. No slug in frontmatter — see BLOCKED items. |
introduction/solution-overview.md | ## Business value deleted (P7); link formats corrected; headings to sentence case; canonical module names applied. |
introduction/glossary.md | Definition format normalised; link formats corrected; heading/term sentence case; British English applied. |
introduction/integration-options.md | Link formats corrected; section caption labels deleted (P7 navigation copy); headings sentence case. |
module-composition/compatibility-and-scenarios.md | All table links bolded; canonical module names applied; use-case and migration path links corrected. |
prerequisites/infrastructure-and-connectivity.md | All headings to sentence case; redundant bold removed from two cross-connections. |
prerequisites/authentication-of-api-calls.md | All headings and subheadings to sentence case. |
implementation-rules/rate-limits-financial-fields-terms.md | H1 and all headings to sentence case; introductory marketing sentence deleted (P7). |
feature-modules/in-app-ribbons.md | Intro marketing sentence deleted (P7); Note block deleted (redundant); all headings to sentence case; P7 UI sub-bullets in Implementation Flow deleted. |
feature-modules/ctrader-invite.md | Note block deleted (redundant); all headings to sentence case; P7 sub-bullets in Implementation Flow deleted; endpoint section renamed to ### Broker → cTrader endpoints. |
feature-modules/embedded-ctrader-web.md | P7 UX sentence deleted; all headings to sentence case; P7 sub-bullets in all flow stages deleted; authorizes → authorises. |
Files not edited in this pass
The following files were not edited. They may require a separate pass:
prerequisites/broker-identification.mdprerequisites/error-codes-contract.mdprerequisites/screen-url-conventions-and-query-parameters.mdidentity-options/sso-user-creation-and-authorisation.mdidentity-options/one-time-token-handoff.mdfeature-modules/in-app-deposit-withdrawal.mdfeature-modules/in-app-kyc.mdfeature-modules/in-app-chat.mdmodule-composition/multi-module-bundles.mdimplementation-rules/conformance-testing.mdimplementation-rules/firebase-analytics.md
CNT-1250 Problem tracker results
| Problem | Priority | Status | Evidence / action |
|---|---|---|---|
| Potentially lost API calls compared to the legacy documentation | High | Already clean | All 13 broker→cTrader endpoints (3.1–3.13) and all 5 cTrader→broker CRM endpoints (4.1–4.5) are accounted for in current docs. See Legacy API comparison section below. |
| AI-hallucinated API calls | High | Partially resolved | Fabricated P7 sub-bullets referencing process-level endpoints (including a /oauth2/token sub-bullet in embedded-ctrader-web.md step 6) deleted. Remaining issue: error-codes-contract.md contains fabricated JSON response bodies with error codes TOKEN_NOT_FOUND and INVALID_MONETARY_FORMAT — neither appears in the legacy Additional_Error_Codes.md. File was not edited in this pass; reported below. |
| Potentially lost images/charts compared to the legacy documentation | High | Already clean | Both referenced images exist: static/broker-oauth/fixedCreation.png and static/broker-oauth/fixembedded2.png. Legacy backup (Flows_Stages/) contains text-only flow stage descriptions — no additional images identified as missing. |
| Indexing in article names | High | Already clean | No indexed article names (A/B/C, 1/2/3 prefixes) found in any current docs/full-integration file titles or headings. |
| Indexing and mismatching to article names in URLs | High | Already clean | All slugs follow the /full-integration/{slug} pattern consistently. One exception: index.md has no slug — see BLOCKED items. |
| Broken/missing links leading to integration methods and modules | High | Resolved | All relative Markdown links verified in edited files. No broken links found. Files outside edit scope not fully audited. |
| Overlapping of integration scenarios and flows | High | Resolved | compatibility-and-scenarios.md retained as the canonical matrix. Redundant scenario content in individual module files removed. |
| Index page/general intro route | High | Blocked | introduction/index.md has no slug frontmatter. Docusaurus will route it to /full-integration/introduction/, not /full-integration/. If the canonical route should be /full-integration/, this requires a sidebar or routing config change — outside approved scope. Needs decision. |
| Redundant or misleading content | High | Resolved | P7 deletions applied across all edited files: ## Business value section, marketing bullets, UX advice, redundant Notes, implementation rationale sub-bullets. |
| SSO/OAuth usage + glossary updates | High | Already clean | Per standing instruction, SSO (OAuth) is retained as written throughout. No bare OAuth used as the concept name in edited files. |
| Docusaurus previews in Telegram | Mid | Blocked | Local preview validation not possible in this pass. Frontmatter in edited files contains no Open Graph tags. Behaviour depends on Docusaurus metadata generation — outside approved Markdown scope. |
| Business value in almost every article | Mid | Resolved | ## Business value section deleted from solution-overview.md. UX/marketing bullets removed from all edited feature module and introduction files. |
| Repeating/wrong style admonitions | Mid | Already clean | Four admonitions found: :::info in glossary.md (×1) and solution-overview.md (×2); :::warning in solution-overview.md (×1). None repeated or wrongly typed. Files outside edit scope not fully audited. |
| Images for flow diagrams → Mermaid | Mid | Reported | Two PNG flow diagrams remain: fixedCreation.png (User Creation Flow in sso-user-creation-and-authorisation.md) and fixembedded2.png (Embedded Web Flow in embedded-ctrader-web.md). Both are candidates for Mermaid conversion. No conversion performed — not requested in this pass. |
| Formulas without indexes → numbered steps with clickable components | Mid | Already clean | All Implementation Flow sections in edited files use numbered step lists. No unindexed formula-style lists found in edited files. |
| British English | Mid | Resolved | Applied in all edited files: behaviour, standardised, authorises, authorised, programmes, initialises, colour. |
| Sentence case for titles | Mid | Resolved | Applied to all headings in edited files. |
| Consistent formatting conventions | Mid | Resolved | Colon, dash, and full-stop conventions normalised in edited files. |
| Bolded hyperlinks | Mid | Resolved in edited files | All links in edited files now use [**text**](url) format. Files outside edit scope (see list above) not audited for this rule. |
Legacy API comparison
Broker → cTrader backend (3.1–3.13)
| Legacy ref | Endpoint | Current location | Status |
|---|---|---|---|
| 3.1 | POST /webserv/managers/token | authentication-of-api-calls.md | Present |
| 3.2 | POST /oauth2/ctid/create | sso-user-creation-and-authorisation.md — endpoint table | Present |
| 3.3 | POST /webserv/traders | sso-user-creation-and-authorisation.md — endpoint table | Present |
| 3.4 | POST /ctid/link | sso-user-creation-and-authorisation.md — endpoint table | Present |
| 3.5 | POST /webserv/traders/{login}/changebalance | in-app-deposit-withdrawal.md — full spec block | Present |
| 3.6 | PUT /oauth2/ctid/referral | ctrader-invite.md — full spec block | Present |
| 3.7 | GET /oauth2/ctid/referral | ctrader-invite.md — full spec block | Present |
| 3.8 | DELETE /oauth2/ctid/referral | ctrader-invite.md — full spec block | Present |
| 3.9 | PUT /oauth2/ctid/inAppControls | in-app-ribbons.md — full spec block | Present |
| 3.10 | PUT /oauth2/ctid/changeEmail | sso-user-creation-and-authorisation.md — endpoint table | Present |
| 3.11 | GET /oauth2/ctid/getUserId | sso-user-creation-and-authorisation.md — endpoint table | Present |
| 3.12 | PUT /oauth2/ctid/logout | sso-user-creation-and-authorisation.md — endpoint table | Present |
| 3.13 | PUT /oauth2/ctid/acceptAgreement | sso-user-creation-and-authorisation.md — endpoint table | Present |
cTrader backend → broker CRM (4.1–4.5)
| Legacy ref | Endpoint | Current location | Status |
|---|---|---|---|
| 4.1 | POST /oauth2/crmApiToken | authentication-of-api-calls.md and sso-user-creation-and-authorisation.md | Present |
| 4.2 | POST /oauth2/onetime/authorize | sso-user-creation-and-authorisation.md — endpoint table | Present |
| 4.3 | POST /oauth2/authorize | sso-user-creation-and-authorisation.md — endpoint table | Present |
| 4.4 | POST /oauth2/onetime/generate | sso-user-creation-and-authorisation.md — endpoint table | Present |
| 4.5 | PUT /oauth2/logout | sso-user-creation-and-authorisation.md — endpoint table | Present |
No endpoints from 3.1–3.13 or 4.1–4.5 are missing from current documentation.
BLOCKED items
These items require a product owner or Spotware decision before they can be resolved.
B-001 — embedded-ctrader-web.md: contradictory identity requirement
- File:
feature-modules/embedded-ctrader-web.md, lines 15 and 17 - Issue: Prerequisites bullet says "Either SSO user creation and authorisation or One-time token handoff". The Note immediately below says "Embedded cTrader Web requires long-term accessToken and therefore is only compatible with SSO user creation and authorisation."
- Needed: Confirm which statement is correct and delete the incorrect one.
B-002 — in-app-ribbons.md and ctrader-invite.md: SSO-only prerequisite implies P1 dependency
- Files:
feature-modules/in-app-ribbons.mdline 15;feature-modules/ctrader-invite.mdline 15 - Issue: Both files list only
SSO user creation and authorisationunder Identity options. However, the compatibility matrix incompatibility-and-scenarios.mdshows both modules as compatible with One-time token handoff. If these modules can run under One-time token handoff, the Prerequisites sections need updating to reflect that. - Needed: Confirm whether In-App Ribbons and cTrader Invite require SSO exclusively, or are also compatible with One-time token handoff.
B-003 — index.md: missing slug and routing
- File:
introduction/index.md - Issue: No
slugin frontmatter. Docusaurus will route the page to/full-integration/introduction/rather than/full-integration/. If/full-integration/should be the canonical entry point for the section, aslug: /full-integration/or sidebar/routing config change is required. - Needed: Confirm intended route and approve config change if required.
B-004 — rate-limits-financial-fields-terms.md: Terms of service section missing
- File:
implementation-rules/rate-limits-financial-fields-terms.md - Issue: The article title includes "Terms of service" and the article is listed under that name in navigation, but the file contains no Terms of Service section or content.
- Needed: Either add Terms of Service content or rename the article and update the navigation reference.
B-005 — rate-limits-financial-fields-terms.md: rate limit threshold value absent
- File:
implementation-rules/rate-limits-financial-fields-terms.md - Issue: The rate limit section states "Requests per hour threshold enforced" but does not specify the threshold value. This is a P4 violation (unsourced quantitative claim) — the threshold cannot be confirmed or denied without a Spotware-provided value.
- Needed: Confirm the actual threshold value for publication, or remove the threshold claim until a value is confirmed.
Reported issues (outside approved edit scope)
R-001 — error-codes-contract.md: fabricated JSON response bodies
- File:
prerequisites/error-codes-contract.md - Issue: The file contains JSON response blocks with error codes
TOKEN_NOT_FOUNDandINVALID_MONETARY_FORMAT. Neither code appears in the legacyAdditional_Error_Codes.md. The legacy source lists only five codes:Bad Request (400),CH_CLIENT_AUTH_FAILURE / CH_INSUFFICIENT_PERMISSIONS (403),Not Found (404),CID_TOKEN_EXPIRED (410), andCID_NON_EXISTED_TOKEN (417)— all without specific JSON body structures. The entire## Financial field format errorssection appears fabricated. - Action required: Remove fabricated JSON blocks and the Financial field format errors section; align the file with the legacy error code table.
R-002 — error-codes-contract.md: Unauthorized (401) and Forbidden (403) description overlap
- File:
prerequisites/error-codes-contract.md - Issue: The HTTP overview table lists both
401 Unauthorized(authentication failure) and403 Forbidden(permission denied), but the legacy backup only uses 403 for authentication failures — not 401. The 401 entry may be fabricated. - Action required: Verify with Spotware whether 401 is returned by any SSO (OAuth) endpoint before publishing.
R-003 — error-codes-contract.md: **API call**: Generate OT token for InApp action — non-canonical reference
- File:
prerequisites/error-codes-contract.md, line 80 - Issue: Uses the literal string "Generate OT token for InApp action" as an API call reference instead of linking to the endpoint in
sso-user-creation-and-authorisation.md. Additionally, "InApp" is unhyphenated. - Action required: Replace with a link to the relevant endpoint section or use the canonical phrase.
R-004 — screen-url-conventions-and-query-parameters.md: "InApp" not hyphenated
- File:
prerequisites/screen-url-conventions-and-query-parameters.md, lines 31, 46, 47, 81 - Issue: "InApp action screens" and "InApp deposit screen" use unhyphenated "InApp" as a descriptive term (not a module name). Should be "In-App".
- Action required: Apply consistent hyphenation in a future pass of this file.
R-005 — in-app-kyc.md: unverified kycType parameter
- File:
feature-modules/in-app-kyc.md, Required screens section - Issue: The KYC verification screen is listed with an optional
kycTypeparameter. This parameter does not appear in the legacy backup (Flows_Stages/InApp_Actions_Flow.mdor API sections). - Action required: Confirm with Spotware whether
kycTypeis a real parameter before publishing.
R-006 — in-app-chat.md: unverified actionType, actionParams, chatReason, department parameters
- File:
feature-modules/in-app-chat.md, Required screens section - Issue: The Generic action screen lists
actionTypeandactionParamsparameters; the Support chat screen listschatReasonanddepartment. None of these appear in the legacy backup. - Action required: Confirm with Spotware which parameters are real before publishing.
R-007 — embedded-ctrader-web.md: unverified https://app.ctrader.com/info embedding URL
- File:
feature-modules/embedded-ctrader-web.md, Example URLs section - Issue: The example URLs use
https://app.ctrader.com/infoas the iframe src. This specific URL pattern is not confirmed in the legacy backup. - Action required: Confirm with Spotware the correct cTrader Web embedding URL before publishing.
R-008 — multi-module-bundles.md: title case in decision matrix table
- File:
module-composition/multi-module-bundles.md - Issue: The decision matrix table uses title case in both column headers (
Business Priority,Recommended Bundle,Implementation Complexity) and cell values (Regulatory Compliance,Compliance-Ready Cashier, etc.). Table column headers are exempt from sentence case per the style guide, but the bundle-name cells (Full Suite,Compliance-Ready Cashier, etc.) should be consistent with how those bundles are named elsewhere in the file. - Action required: Review in a future pass.
Deleted-heading anchor audit
The following headings were deleted or renamed in this pass. Inbound anchor links pointing to these headings will now be broken. Search results below show no inbound links were found within docs/full-integration for these anchors.
| Deleted heading | File | Inbound links found |
|---|---|---|
## Business value | solution-overview.md | None in docs/full-integration |
## Core Architecture → renamed ## Core architecture | solution-overview.md | None found |
## AWS Direct Connect Option → renamed | infrastructure-and-connectivity.md | None found |
## URL Base Patterns → renamed | authentication-of-api-calls.md | None found |