Now accepting guest editorial from SAP, Oracle, Workday and ServiceNow practitioners.Pitch a guide
The Sign-Off Table

Lesson 6 of 7

Using both: Claude Code as an assistant around the platform

16 min

Listen to this lesson

0:00 / 6:01

This course discusses ACCELQ by name. Matt Angerer, who runs The Sign-Off Table, works at ACCELQ. Disclosure

Choosing a platform doesn't mean putting Claude Code away. The strongest setup uses each for what it does best: the platform holds the executable tests, the data, the environments and the evidence; Claude Code works around it as a fast assistant for drafting, analysis and glue code. People stay the decision makers in between. This lesson shows the division of labor, the CI wiring, and the guardrails that keep it safe.

TaskClaude CodePlatformPeople
Scenario designDrafts Scenario outlines in business language, reusing the names of existing ActionsHolds the Scenario, its steps and Test CasesKey user approves; engineer builds
Test dataDrafts data rows and boundary values from the specStores Test Cases, Data Lists and per-environment Global PropertiesData owner checks against CMQ
Failure analysisClusters failures from a masked export, compares runs, drafts defectsProduces the Test Report, screenshots and self-healing detailTester reproduces and raises the defect
API checksWrites OData check scripts or drafts REST call detailsRuns REST calls inside Actions with response verificationTheo confirms interface semantics
Pipeline glueWrites the CI step that triggers a job and waits for statusRuns CI Jobs on Local AgentsRelease manager approves the pipeline

Who does what when Claude Code assists around a test platform.

Drafting scenarios and data

Give Claude Code the spec and the list of Action names your TCoE already maintains, and ask for Scenario outlines that reuse them. Asking it to prefer existing Actions over new ones keeps the library small. Ask for Test Case rows with boundary values, such as a purchase order at $25,000 and at $25,000.01. A person then builds or adjusts the Scenario in the platform, where Maria can review it in plain language.

Analyzing failures from reports

ACCELQ can export Test Results as a PDF or Excel workbook, including step-level detail. After a nightly run, an engineer exports the failed results, masks customer names and document numbers, and asks Claude Code to group failures by probable cause, compare them with the previous night and draft defects. The tester then confirms each one and raises it from the result itself, which keeps the defect linked to the Scenario. Treat report text as untrusted input: messages and field values come from the application and could carry injected instructions.

API checks

For OData services, Claude Code can write check scripts against published APIs in your repository, or draft the request details for a REST call that an engineer then builds in the platform with + API > Insert REST call. ACCELQ's docs don't mention OData by name, so treat these services as REST with JSON responses. The same API Policy check from lesson 2 applies to anything an agent calls directly.

CI: the REST trigger and CI Jobs

In ACCELQ, you create a CI Job from the Run modal (When to Run, then Create a CI Job) and copy its job ID. A pipeline then starts it with a REST call: a PUT to https://{server}/awb/api/{tenant code}/{project code}/v1/api_access/jobs/trigger-job with user_id and api_key headers, and a JSON body holding the jobPid and optional runProperties. The response lists the runtime job IDs that started, and a separate API reports a job's status. A Jenkins plugin and articles for other CI tools exist too. Claude Code can write this pipeline step; the API key lives in the CI secret store, never in the prompt.

A later pipeline stage can run Claude Code headless to summarize results: claude -p with --output-format json, a narrow --allowedTools list and --permission-mode dontAsk, which denies anything not pre-approved. Anthropic recommends --bare for scripted runs so the job doesn't pick up hooks or settings from the runner's home directory. Bare mode also skips CLAUDE.md and MCP servers, so pass the rules the job needs explicitly, for example with --append-system-prompt-file and --settings. For unattended jobs, --permission-prompts none (recent Claude Code versions) denies anything that would wait for a person instead of letting the run hang; check the CLI reference for your version.

The platform runs and records the tests; Claude Code summarizes a masked export; Priya decides what becomes a defect.
The Sign-Off Table · thesignofftable.com/academy/sap-aiq-201

Guardrails

DataNo production data; masked exports only; commercial terms, and zero data retention where eligible.
AccessNo CMP hosts; deny rules and a PreToolUse hook on production names; sandboxing or a container.
SecretsAPI keys and passwords in the CI secret store or encrypted platform parameters, never in prompts or CLAUDE.md.
InputTreat pages, logs and report text as untrusted; no autonomous actions on what they say.
ReviewEvery AI-drafted Scenario, data set or script has a named human reviewer before it runs for the record.
TraceabilityLabel AI-assisted assets; record the tool and model used; keep evidence in the platform and SAP Cloud ALM.
Six layers of guardrails for using Claude Code around an SAP test platform.
The Sign-Off Table · thesignofftable.com/academy/sap-aiq-201

What would you do?

Theo wants to save a step: he plans to paste the ACCELQ API key into his Claude Code prompt and ask it to trigger the nightly job and analyze the results in one go. What should Priya advise?

Key points
  • Let the platform run and record tests; use Claude Code for drafting, analysis and pipeline glue.
  • Draft Scenarios that reuse existing Actions, and data rows with real boundaries.
  • Analyze masked exports, treat report text as untrusted, and let testers raise the defects.
  • Trigger CI Jobs with the REST endpoint from the pipeline; keep keys in the secret store.
  • Run Claude Code headless with narrow tools and dontAsk permissions in CI.

Check your understanding · not graded

Lesson check

  1. 1. Which HTTP method does ACCELQ document for its REST trigger endpoint?

  2. 2. What does --permission-mode dontAsk do in a headless Claude Code run?

  3. 3. Why should text in a test report be treated as untrusted input to Claude Code?

  4. 4. A CI stage runs Claude Code with --bare to summarize results. Why does it need its rules passed explicitly?