Start a new suite
Generate a Maven project, then run its first test with the checked-in command.
Generate a projectRun one Java project across web, mobile, API, database, and CLI. Keep native engine control, then connect Capture, Doctor, Heal, and MCP when they add evidence.
mvn testUse evidence to keep engineers in control and give delivery leaders a reviewable release signal.
Evidence first
Run doctor_analyze_failed_allure or doctor_analyze_trace to classify evidence before reviewing a proposal.
classification: locator
evidence: failed Allure action and trace context
next step: review remediation guidance
Model choice remains with the MCP client. Tests remain ordinary Java. Proposals do not silently edit, approve, or merge.
For engineers, preserve native Java control. For delivery leaders, make release evidence easy to inspect.
Generate a Maven project, then run its first test with the checked-in command.
Generate a projectUpgrade supported Selenium, Appium, REST Assured, or older SHAFT projects in controlled steps.
Read upgrade guideKeep web, mobile, API, database, and CLI checks in one Java project and evidence model.
Explore surfacesUse failed Allure or trace evidence to classify a cause before reviewing a remediation proposal.
Review diagnosis flowStart with the native engine. Keep the evidence and Java suite in one place.
SHAFT.GUI.WebDriver driver = new SHAFT.GUI.WebDriver();
driver.browser().navigateToURL("https://example.com");
driver.element().click(By.id("submit"));
Native engine
Touch actions, device context, screenshots, and native trace evidence.
Read mobile guidedriver.touch().tap(SHAFT.GUI.Locator.accessibilityId("Views"));
driver.assertThat().element(By.id("screen")).exists().perform();
SHAFT.API api = new SHAFT.API(apiFixtureUrl);
api.get("users").performRequest();
Native engine
Connection target, query result, validation, and report evidence.
Read database guideSHAFT.DB database = new SHAFT.DB("jdbc:h2:mem:test");
ResultSet rows = database.executeSelectQuery("SELECT 1");
Native engine
Commands, captured output, and validation in the same report.
Read cli guideString output = SHAFT.CLI.terminal()
.performTerminalCommand("echo Hello SHAFT");
Generate a focused starter, examine the documentation, or follow development on GitHub.