Connected QA, Documentation, and Delivery Platform#

AI-SAI-Generated Summary H-RHuman Reviewed H-EHuman Edited

How I connected structured requirements, API specifications, automated tests, generated references, web manuals, and formatted PDFs through CI/CD.

Professional case study | Transfer Online | 2023–2026

Playwright API Testing OpenAPI YAML Sphinx Python CI/CD LaTeX Accessibility

I designed and maintained a connected quality and documentation engineering platform for multiple financial-services applications. The system brought API specifications, automated validation, application-integrated regression testing, generated test references, web manuals, and offline PDFs into coordinated CI/CD workflows.

The platform eventually grew beyond traditional documentation production. Structured documentation requests could enter through a form, become normalized requirements, and proceed through automated drafting, validation, formatting, and human review.

The system did not remove human review. It moved effort away from repetitive assembly, synchronization, and formatting and toward technical validation, editing, domain review, and final approval.

From structured request to review-ready manual

For one 70-page DMS-related workflow, a structured documentation request fed an automated requirements-to-validation pipeline that produced a review-ready manual in under one hour. The previous production process had taken approximately 1.5 months. Human review and quality gates remained before publication.

Note

This case study describes work I performed at Transfer Online using public outputs and a sanitized architectural overview. It does not include private source code, credentials, customer data, internal endpoints, or proprietary business logic. The descriptions reflect my individual contributions and are not official statements from Transfer Online.

At a Glance#

Category

Details

Organization

Transfer Online

Roles

Technical Writer (08/2023 – 11/2024); Technical Consultant (11/2024 – 04/2026)

Period

August 2023 – April 2026

Primary focus

QA automation, API validation, documentation engineering, accessibility, and CI/CD

Testing

Playwright, Postman, API testing, integration testing, manual testing, exploratory testing, and regression testing

Documentation

Sphinx, MyST Markdown, reStructuredText, OpenAPI, YAML, generated API references, user manuals, and test-function documentation

Delivery

GitHub Actions, Azure, Azure Static Web Apps, Docker, HTML, LaTeX, and PDF

Development

Python, TypeScript, JavaScript, CSS, SQL, Bash, and C# documentation tooling

Public outputs

SOLO REST API documentation, CIT Enterprise User Manual, and generated Playwright test documentation

Primary Result#

For one 70-page DMS-related workflow:

  • A structured form became the intake layer for documentation requests.

  • Request information was converted into organized requirements.

  • The pipeline produced a review-ready manual in under one hour.

  • Human review and deterministic quality gates remained before handoff or publication.

The previous manual-production process had taken approximately 1.5 months.

The Original Problem#

The documentation and quality systems had several related scaling challenges.

Documentation and software could drift apart#

API behavior, application workflows, test implementation, and published documentation changed at different rates. Manual synchronization increased the risk that documentation would describe outdated behavior or omit important changes.

Multiple outputs duplicated work#

The same information had to support web documentation, downloadable PDF manuals, multiple user roles, API reference material, internal testing references, and application-delivered help content. Maintaining each output independently would have created duplicated content and inconsistent updates.

PDF formatting required significant manual effort#

Long software manuals often required repeated intervention to correct page breaks, spacing, figure placement, and other pagination problems. Adding more detail could create additional formatting work and reduce the consistency of the final output.

Documentation delivery was part of the application#

The web manuals were linked to or delivered through the software. A documentation build could succeed while application links, embedded content, routes, or iframe behavior still failed in production.

Test utilities also required documentation#

Reusable Playwright helpers increased automation consistency, but they also created a discoverability and maintenance problem. Developers and testers needed reference information that remained aligned with the underlying TypeScript functions and test behavior.

Incoming requests were often incomplete or inconsistent#

Unstructured documentation requests required additional meetings, follow-up questions, and manual interpretation before drafting could begin. A structured intake method was needed to gather requirements consistently.

My Role#

My official title was initially Technical Writer and later Technical Consultant. Across those roles, I contributed to or owned documentation architecture, API documentation, API validation workflows, QA planning, manual and exploratory testing, Postman integration coverage, Playwright regression automation, reusable browser-testing helpers, generated test documentation, Sphinx extensions and configuration, Python documentation tooling, CI/CD design, HTML and PDF publishing, LaTeX-based PDF generation, custom first-pass PDF formatting, accessibility-focused information architecture, structured documentation intake, automated draft generation, deterministic validation, and human-review gates.

I collaborated with developers, product stakeholders, business users, QA participants, and documentation consumers to understand application behavior, clarify requirements, investigate discrepancies, and keep documentation and tests aligned with the software.

My work focused on the documentation, testing, automation, and delivery platform. I did not create all underlying application behavior, API business logic, or customer requirements.

How the Platform Evolved#

Phase 1: Documentation as version-controlled source#

The initial foundation was a docs-as-code workflow. Documentation moved into version-controlled source using Sphinx, MyST Markdown, reStructuredText, YAML, OpenAPI, Git, GitHub, and Python tooling. This made documentation changes reviewable, reproducible, and compatible with automated builds.

Phase 2: API documentation and validation#

YAML and OpenAPI specifications supplied structured information for the API-reference build. CI/CD regenerated and published the documentation while related API checks ran in the same delivery workflow.

The API pages included resource-oriented navigation, endpoint descriptions, authentication guidance, path and query parameters, request and response examples, multiple programming-language examples, and links to related attributes and options.

I reduced documentation drift by running documentation generation and API validation together in a repeatable workflow.

Phase 3: Single-source web and PDF manuals#

A shared Sphinx architecture generated multiple role-specific manuals from one maintained codebase, supporting Enterprise, Investor, Sponsor, and CIT Corp manuals with shared content, role-specific content, common navigation and styling, and both web and offline PDF publication. This reduced duplicated maintenance and helped keep the different manuals structurally consistent.

Phase 4: Documentation-delivery regression testing#

The manuals were treated as part of the application’s delivered functionality rather than as unrelated external content.

Reusable Playwright helpers validated application-to-documentation behavior such as documentation availability, navigation from the application to the correct manual, deep links, route behavior, embedded or iframe-based content, documentation regressions, content-delivery failures, and core platform health. This made documentation delivery part of regression testing.

Phase 5: Generated test-suite documentation#

The automation system also documented itself. Generated references described reusable TypeScript and Playwright helper functions. Custom Sphinx and sphinx-js behavior supported test-helper reference pages, function descriptions, parameters and expected use, test reports, status tracking, and links between automation implementation and documentation.

Two different synchronization mechanisms are worth distinguishing:

  • Helper references were regenerated from automation source as functions changed.

  • Test reports and status pages were refreshed from execution results as tests ran.

The test framework can reasonably be described as resilient because it included bounded recovery behavior. The generated documentation is better described as automatically generated, self-updating, or continuously synchronized.

Phase 6: Automated first-pass PDF formatting#

The web manuals and PDFs came from shared documentation sources, but PDF pagination required additional layout logic. I developed a custom scoring and page-break process that evaluated candidate layout decisions and improved first-pass PDF formatting.

The objective was to reduce manual pagination work, avoid poor page-break placement, improve layout consistency, support more detailed documentation, preserve readability, produce usable PDF output during the initial build, and keep web and offline content synchronized.

The algorithm improved the first result. It did not eliminate the need for review.

Phase 7: Structured request-to-draft automation#

The final stage connected documentation intake to the generation and validation workflow. Instead of relying entirely on an unstructured email or meeting, a documentation request could begin with a form that captured requirements in a consistent structure.

The request-to-draft workflow became:

  1. A requester submitted structured information.

  2. The system organized the information into normalized requirements.

  3. Automation produced an initial documentation draft.

  4. Deterministic validators checked expected structure and output requirements.

  5. The documentation build generated the web output and formatted PDF.

  6. Failed or uncertain results were retried or escalated.

  7. A human reviewed the content and output.

  8. Approved content proceeded to handoff or publication.

For one 70-page DMS-related workflow, the complete first-pass manual became review-ready in under one hour.

This was not a one-click replacement for technical review. It was a system for replacing slow, repetitive production work with structured input, automated assembly, repeatable validation, and focused human judgment.

Architecture#

The platform contained several connected paths:

  1. YAML and OpenAPI sources fed the API-documentation build.

  2. API validation ran alongside documentation generation in CI/CD.

  3. Sphinx source produced role-specific web manuals.

  4. The same source fed LaTeX-based PDF generation.

  5. Custom layout logic improved first-pass PDF formatting.

  6. Playwright tested application and documentation integration.

  7. Automation source generated helper-function references.

  8. Test execution refreshed reports and status information.

  9. Structured form submissions supplied requirements to the draft-generation workflow.

  10. Deterministic checks and human review controlled handoff and publication.

        flowchart LR
    A[Structured request form] --> B[Normalized requirements]
    B --> C[Draft generation]
    C --> D[Deterministic validation]
    D --> E[Human review]

    F[YAML and OpenAPI sources] --> G[API documentation build]
    F --> H[API validation]

    I[Sphinx manual sources] --> J[Role-specific web manuals]
    I --> K[LaTeX PDF build]
    K --> L[Page-break and layout optimization]

    M[Playwright automation] --> N[Application and documentation regression]
    M --> O[Generated helper references]
    N --> P[Test reports and status pages]

    E --> I
    G --> Q[CI/CD quality gates]
    H --> Q
    J --> Q
    L --> Q
    N --> Q
    O --> Q
    P --> Q

    Q --> R[Published documentation sites]
    Q --> S[Downloadable offline manuals]
    

API Documentation and Validation#

The SOLO REST API documentation was generated and maintained through a Sphinx and OpenAPI-oriented workflow, combining YAML and OpenAPI specifications, version-controlled source, Sphinx documentation generation, Python automation, API request and response examples, Postman integration coverage, CI/CD builds, automated link and warning checks, and published developer documentation.

This created a more maintainable relationship between specifications, validation, and developer-facing reference content.

The public page demonstrates endpoint organization, parameter documentation, authentication-aware examples, request examples in several languages, response details, and links to related API resources. The rendered page demonstrates the output; this case study explains the system behind it.

View the SOLO REST API Report resource documentation

Application-Integrated Manuals#

The CIT manuals were not treated as isolated documents. They were part of the application’s user workflow and were therefore included in regression testing.

The documentation architecture supported multiple user roles, shared and conditional content, common navigation, application-specific pages, online access, offline PDF access, embedded or linked delivery, and regression validation through Playwright.

The public manual demonstrates role-oriented documentation, web-based navigation, structured user guidance, product-workflow documentation, and a documentation site designed for continued expansion.

View the CIT Enterprise User Manual

Generated Test Automation Documentation#

The Playwright suite included reusable helpers and test utilities. Generated documentation made those components easier to discover, understand, maintain, and reuse.

The documentation platform included TypeScript function references, Playwright helper documentation, test reports, status tracking, custom Sphinx directives, customized sphinx-js behavior, and automated regeneration as the suite evolved.

I generated the reference from the test suite’s reusable helpers and utilities.

View the generated Playwright test-function reference

Resilient Test Automation#

The Playwright framework included bounded recovery behavior designed to reduce unnecessary failures without hiding unresolved problems. Recovery mechanisms included resumable checkpoints, alternate-selector recovery, retry and backoff, deterministic post-action validation, limited automated repair attempts, escalation after repeated failures, and human review for unresolved cases.

The important design principle was that recovery had limits. A test that could not be repaired confidently was escalated rather than silently marked as successful. This preserved the distinction between a confirmed pass, a recoverable automation failure, and a result requiring human investigation.

Across 376 generated test files, the measured outcome of that design was:

Outcome

Share of generated test files

Passed on the initial run

76.6%

Repaired automatically within the bounded recovery limits

18.6%

Escalated for human intervention

4.8%

The 4.8% figure is the part that matters most. Those cases were not silently retried until they passed or quietly recorded as successes. They were surfaced for human investigation, which is what keeps the remaining 95.2% meaningful as a quality signal.

CI/CD Workflow#

The connected delivery process included:

  1. Source or specification changes were committed to version control.

  2. CI/CD restored dependencies and initialized the documentation environment.

  3. API validation and relevant automated checks ran.

  4. Sphinx generated the HTML documentation.

  5. LaTeX and related tooling generated PDF output.

  6. Custom pagination logic improved the first-pass PDF layout.

  7. Playwright validated application and documentation workflows.

  8. Generated test references and reports were refreshed.

  9. Link checks, warning budgets, and other quality gates ran.

  10. Staged outputs were reviewed.

  11. Approved builds were promoted to the published environment.

This workflow made documentation changes observable and testable in the same way as other software changes.

Accessibility Approach#

Accessibility was treated as a design and quality concern across web documentation, application-delivered help, information architecture, navigation, semantic organization, readability, link clarity, user guidance, responsive presentation, and offline documentation.

My initial accessibility approach was informed by inclusive web and content-design principles, including Laura Kalbag’s Accessibility for Everyone. More recently, I have added Lighthouse accessibility audits to my review process. Lighthouse helps identify machine-detectable problems and provides a repeatable diagnostic baseline.

I use automated accessibility results alongside manual review to find and address issues. A Lighthouse score alone cannot establish formal accessibility conformance.

Human Review and Quality Controls#

Automation was used to accelerate production, not to eliminate accountability. Quality controls included structured requirements, version-controlled source, deterministic validation, automated tests, link checks, warning budgets, build failures for invalid output, bounded retries, escalation for unresolved cases, human editing, domain review, staged publication, and final approval before production use.

This was particularly important for financial-services documentation, where inaccurate instructions, missing requirements, or incorrect API behavior could have meaningful downstream effects.

Results#

Area

Result

Structured intake

Documentation requests could enter through a consistent form instead of relying entirely on unstructured requests

Initial manual production

One 70-page DMS-related workflow was reduced from approximately 1.5 months to under one hour

Multi-output delivery

Shared documentation sources produced synchronized web and offline outputs

Multiple audiences

One Sphinx architecture supported Enterprise, Investor, Sponsor, and CIT Corp manuals

Output scale

The broader connected workflows involved approximately 455 HTML pages and 848 PDF pages

Regression coverage

Playwright validated application workflows, documentation delivery, embedded content, and related regressions

Test generation quality

A gold-standard evaluation comparing generated output against validated test behavior raised the measured pass rate from 15.3% to 98.7% across a 710-test run

Parallel execution

Benchmarking 118 specifications across 8, 16, and 32 workers reduced average runtime from 14.4 minutes to 5.8 minutes while maintaining an approximately 99% parallel-run pass rate

Automated repair

Across 376 generated test files, 76.6% passed initially, 18.6% were repaired within bounded recovery limits, and 4.8% were escalated for human intervention

API quality

API documentation generation and API validation ran within coordinated CI/CD workflows

Test maintainability

Reusable automation helpers were paired with generated function references, reports, and status information

PDF quality

Custom layout scoring reduced repeated manual pagination and improved first-pass output

Accessibility

Accessibility-focused structure and review were incorporated across web and offline documentation

The most important outcome was not simply faster writing. The platform changed the workflow from request, manual interpretation, manual drafting, repeated formatting, isolated testing, and manual publication to structured request, normalized requirements, automated draft, deterministic validation, tested web and PDF build, focused human review, and controlled publication.

Design Decisions#

Treat documentation as a software product. Documentation source, build configuration, generated output, tests, and deployment were versioned and validated together.

Use single-source content where practical. Shared sources reduced duplication across role-specific manuals and output formats.

Test delivery, not only content. A correct manual was still unusable when an application link, route, iframe, or deployment failed. Playwright therefore validated the delivery path.

Generate references from implementation. Test helper documentation was generated from the automation system rather than maintained as an unrelated manual reference.

Keep automated recovery bounded. Retries and alternate selectors reduced avoidable failures, but unresolved cases remained visible and were escalated.

Optimize the first PDF build. The goal of the pagination algorithm was not to replace review. It was to make the initial result substantially closer to the expected final layout.

Preserve human judgment. Automation handled repetitive transformation and validation. Humans retained responsibility for meaning, domain accuracy, clarity, and approval.

Challenges#

Connecting systems without creating hidden dependencies. The documentation, tests, and publishing workflows needed to remain connected without making one component impossible to change independently.

Supporting web and print requirements. Web documentation and print-oriented PDFs have different layout needs. Shared content had to support both without forcing authors to maintain duplicate versions.

Preventing stale generated content. Generated API and test references needed to rebuild when source specifications or automation helpers changed.

Avoiding brittle browser automation. Application and documentation integration tests required recovery from predictable selector or timing failures without concealing genuine regressions.

Scaling detail without degrading PDF quality. More detailed manuals created additional pagination pressure. The formatting pipeline needed to handle larger and more complex content without returning to extensive manual page-break adjustment.

Accelerating drafting without weakening review. The form-driven generation pipeline had to improve speed while retaining deterministic checks and human oversight.

What I Learned#

  • Documentation should be tested when it is part of a user workflow.

  • Structured inputs reduce ambiguity before automation begins.

  • Generated content requires deterministic validation.

  • A shared source reduces drift only when builds and publication are controlled.

  • Browser automation should recover from known transient failures but escalate uncertainty.

  • Automated accessibility tools are useful diagnostics but do not replace human evaluation.

  • PDF generation is an engineering problem when layout quality must be repeatable at scale.

  • The best automation moves human effort toward judgment rather than merely producing more output.

  • Documentation, testing, and software delivery are more reliable when they are designed as one coordinated system.

Public Work Samples#

Endpoint-oriented developer documentation, parameter details, authentication-aware examples, response information, and multi-language request samples.

Role-oriented web documentation, product workflows, structured navigation, and online manual delivery.

Generated documentation for reusable Playwright and TypeScript test helpers.

Scope and Confidentiality#

This page intentionally excludes private repositories, proprietary source code, internal API hosts, credentials, access tokens, customer or shareholder information, nonpublic screenshots, internal defect reports, confidential business rules, and employer-owned implementation details not already reflected in public outputs.

The architecture is presented at a level intended to explain my responsibilities, decisions, and results without exposing protected information.