Let QA Wolf automatically select the flows affected by your PR.
A Smart Smoke Suite is one way for a trigger to choose its flows. Instead of running flows you name in advance, the QA Wolf agent selects the flows affected by the pull request behind each deploy. This gives engineers a faster release signal in the review cycle.Smart Smoke Suites are designed to layer onto your existing coverage strategies.The suite has no fixed size. The agent selects the flows it judges affected by the change, so a wide-ranging PR selects more flows than a narrow one. It can also be empty: when the agent judges a change low-risk, or finds no flow that covers it, no run starts.
Smart Smoke Suites are currently in alpha and not available to all customers. Early customers running it in production work closely with QA Wolf to validate the experience and tune selection quality.
QA Wolf reads the pull request behind the deploy: its title and description, plus its changed files and diff on GitHub. On GitLab it reads the merge request’s title and description only.
The agent compares the change with your existing flows, along with any instructions on the trigger, and picks the flows the change affects.
The selected flows run against the deploy’s URL.
QA Wolf posts the agent’s analysis as a comment on the pull request, and reports the result on the pull request as described in PR testing. When no run starts, GitHub gets a passing QA Wolf Test Results check.
A connected GitHub or GitLab integration covering the deploying repository, so each deploy links to its pull request. See PR testing.
A preview deploy per pull request, reported through GitHub deployments, a GitLab deployment job, or deployment.reportStatus.
A deployment trigger whose flows are set to Generative suite on the triggers page.
Once it’s set up, each preview deploy linked to a pull request gets its own selection. To stop, switch the trigger back to Flows with selected tags, or pause it. The change applies to deploys that arrive afterwards.A Smart Smoke Suite is a deployment trigger whose action kind is generativeSuite; see Trigger fields. It needs PR testing: a deploy that is not linked to a pull request is skipped.
The agent reads the pull request (its title and description, and on GitHub its changed files and diff), your existing flows, and any instructions on the trigger. It picks the flows it judges the change affects.
{"docsConfig":{"theme":"aspen","$schema":"https://mintlify.com/docs.json","name":"QA Wolf Docs","colors":{"primary":"#3b3cef","light":"#08edcb","dark":"#3b3cef"},"logo":{"light":"https://mintcdn.com/qawolf/8HFRRs7AoYV9S40R/logo/light.svg?fit=max\u0026auto=format\u0026n=8HFRRs7AoYV9S40R\u0026q=85\u0026s=b9d699b988c7eab072287836c4d9e0d2","dark":"https://mintcdn.com/qawolf/8HFRRs7AoYV9S40R/logo/dark.svg?fit=max\u0026auto=format\u0026n=8HFRRs7AoYV9S40R\u0026q=85\u0026s=cd2ad525ee7dd964ff4836f7df8d2b54","href":"https://www.qawolf.com"},"favicon":{"light":"https://mintcdn.com/qawolf/R2NspCz4NaCGUkW7/favicon.png?fit=max\u0026auto=format\u0026n=R2NspCz4NaCGUkW7\u0026q=85\u0026s=d25b1eaf526daf1590d54c42755028a3","dark":"https://mintcdn.com/qawolf/R2NspCz4NaCGUkW7/favicon.png?fit=max\u0026auto=format\u0026n=R2NspCz4NaCGUkW7\u0026q=85\u0026s=d25b1eaf526daf1590d54c42755028a3"},"appearance":{"default":"dark"},"background":{"decoration":"gradient","color":{"dark":"#0b0b2f"}},"navbar":{"links":[{"href":"mailto:hello@qawolf.com","label":"Support"},{"href":"https://app.qawolf.com/sign-in","label":"Sign in"}],"primary":{"type":"button","label":"Try for free","href":"https://qawolf.com"}},"footer":{"socials":{"x":"https://twitter.com/qawolfhq","github":"https://github.com/qawolf/qawolf","linkedin":"https://www.linkedin.com/company/qa-wolf"}},"seo":{"metatags":{"canonical":"https://docs.qawolf.com"}},"icons":{"library":"lucide"},"integrations":{"posthog":{"apiKey":"phc_qEW3U4XMuhdJa6Rf2QZvbyKcixM5mYyq5BYNopuSxBFw","sessionRecording":true}},"contextual":{"options":["copy","view","chatgpt","claude","perplexity"],"display":"header"},"metadata":{"timestamp":true},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"qawolf","hasAudioNarration":false,"actualSubdomain":"qawolf","customDomains":["docs.qawolf.com"],"gitSource":{"type":"github","owner":"qawolf","repo":"docs","deployBranch":"main","contentDirectory":"","isPrivate":false,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6adfa6ffe2a4938765af0266","collectionId":"d2864716-0a98-4f5c-830c-3aa378eb2ed6","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6adfa6ffe2a4938765af0266"},"feedback":{"thumbs":true,"edits":false,"issues":true,"agentFeedback":true},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6adfa6ffe2a4938765af0266","clientVersion":"0.0.3971","searchFilterCounts":[{"language":"default","tag":"References","count":42},{"language":"default","tag":"Solutions","count":37},{"language":"default","tag":"Integrations","count":29},{"language":"default","tag":"Features","count":10},{"language":"default","tag":"@qawolf/flows","count":10},{"language":"default","tag":"Legacy triggers","count":9},{"language":"default","tag":"Audio","count":7},{"language":"default","tag":"CI/CD","count":7},{"language":"default","tag":"Deployment testing","count":6},{"language":"default","tag":"Issue Trackers","count":5}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableAskAiSearchBar":true,"deflection":{"enabled":true,"email":"hello@qawolf.com"}},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[],"isAtlas":false,"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"smart-smoke-suites","slug":"/smart-smoke-suites","pageMetadata":{"title":"Smart Smoke Suites","description":"Let QA Wolf automatically select the flows affected by your PR.","keywords":"Smart Smoke Suite, smoke tests, smoke suite, generativeSuite, PR testing, adaptive flow selection","href":"/smart-smoke-suites"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Let QA Wolf automatically select the flows affected by your PR.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,li:`li`,ol:`ol`,p:`p`,strong:`strong`,ul:`ul`,..._provideComponents(),...props.components},{Heading,Note}=_components;if(!Heading)_missingMdxReference(`Heading`,true);if(!Note)_missingMdxReference(`Note`,true);return _jsxs(_Fragment,{children:[_jsxs(_components.p,{children:[`A Smart Smoke Suite is one way for a `,_jsx(_components.a,{href:`/triggers/overview`,children:`trigger`}),` to choose its flows. Instead of running flows you name in advance, the QA Wolf agent selects the flows affected by the pull request behind each deploy. This gives engineers a faster release signal in the review cycle.`]}),`\n`,_jsx(_components.p,{children:`Smart Smoke Suites are designed to layer onto your existing coverage strategies.`}),`\n`,_jsx(_components.p,{children:`The suite has no fixed size. The agent selects the flows it judges affected by the change, so a wide-ranging PR selects more flows than a narrow one. It can also be empty: when the agent judges a change low-risk, or finds no flow that covers it, no run starts.`}),`\n`,_jsx(Note,{children:_jsx(_components.p,{children:`Smart Smoke Suites are currently in alpha and not available to all customers. Early customers running it in production work closely with QA Wolf to validate the experience and tune selection quality.`})}),`\n`,_jsx(Heading,{level:`2`,id:`how-it-works`,children:`How it works`}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsx(_components.li,{children:`QA Wolf reads the pull request behind the deploy: its title and description, plus its changed files and diff on GitHub. On GitLab it reads the merge request’s title and description only.`}),`\n`,_jsx(_components.li,{children:`The agent compares the change with your existing flows, along with any instructions on the trigger, and picks the flows the change affects.`}),`\n`,_jsx(_components.li,{children:`The selected flows run against the deploy’s URL.`}),`\n`,_jsxs(_components.li,{children:[`QA Wolf posts the agent’s analysis as a comment on the pull request, and reports the result on the pull request as described in `,_jsx(_components.a,{href:`/deployment-testing/pr-testing#checks-on-the-pull-request`,children:`PR testing`}),`. When no run starts, GitHub gets a passing `,_jsx(_components.strong,{children:`QA Wolf Test Results`}),` check.`]}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`requirements`,children:`Requirements`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`A connected GitHub or GitLab integration`}),` covering the deploying repository, so each deploy links to its pull request. See `,_jsx(_components.a,{href:`/deployment-testing/pr-testing`,children:`PR testing`}),`.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`A preview deploy per pull request`}),`, reported through GitHub deployments, a GitLab deployment job, or `,_jsx(_components.code,{children:`deployment.reportStatus`}),`.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`A deployment trigger`}),` whose flows are set to `,_jsx(_components.strong,{children:`Generative suite`}),` on the triggers page.`]}),`\n`]}),`\n`,_jsxs(_components.p,{children:[`Once it’s set up, each preview deploy linked to a pull request gets its own selection. To stop, switch the trigger back to `,_jsx(_components.strong,{children:`Flows with selected tags`}),`, or pause it. The change applies to deploys that arrive afterwards.`]}),`\n`,_jsxs(_components.p,{children:[`A Smart Smoke Suite is a `,_jsx(_components.a,{href:`/triggers/overview`,children:`deployment trigger`}),` whose action kind is `,_jsx(_components.code,{children:`generativeSuite`}),`; see `,_jsx(_components.a,{href:`/triggers/reference#action`,children:`Trigger fields`}),`. It needs `,_jsx(_components.a,{href:`/deployment-testing/pr-testing`,children:`PR testing`}),`: a deploy that is not linked to a pull request is skipped.`]}),`\n`,_jsx(Heading,{level:`2`,id:`faq`,children:`FAQ`}),`\n`,_jsx(Heading,{level:`3`,id:`how-does-qa-wolf-decide-which-flows-to-run`,children:`How does QA Wolf decide which flows to run?`}),`\n`,_jsx(_components.p,{children:`The agent reads the pull request (its title and description, and on GitHub its changed files and diff), your existing flows, and any instructions on the trigger. It picks the flows it judges the change affects.`}),`\n`,_jsx(Heading,{level:`3`,id:`can-we-add-specific-tests-to-always-run-on-prs`,children:`Can we add specific tests to always run on PRs?`}),`\n`,_jsx(_components.p,{children:`Name them in the trigger’s instructions. Instructions guide the agent’s selection; they don’t guarantee a flow runs.`}),`\n`,_jsx(Heading,{level:`3`,id:`do-we-have-to-write-new-flows-specifically-for-smart-smoke-suites`,children:`Do we have to write new flows specifically for Smart Smoke Suites?`}),`\n`,_jsx(_components.p,{children:`No. The agent selects from the flows you already have.`})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Smart Smoke Suites","description":"Let QA Wolf automatically select the flows affected by your PR.","keywords":"Smart Smoke Suite, smoke tests, smoke suite, generativeSuite, PR testing, adaptive flow selection","href":"/smart-smoke-suites"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"How it works","slug":"how-it-works","depth":2,"children":[]},{"title":"Requirements","slug":"requirements","depth":2,"children":[]},{"title":"FAQ","slug":"faq","depth":2,"children":[{"title":"How does QA Wolf decide which flows to run?","slug":"how-does-qa-wolf-decide-which-flows-to-run","depth":3,"children":[]},{"title":"Can we add specific tests to always run on PRs?","slug":"can-we-add-specific-tests-to-always-run-on-prs","depth":3,"children":[]},{"title":"Do we have to write new flows specifically for Smart Smoke Suites?","slug":"do-we-have-to-write-new-flows-specifically-for-smart-smoke-suites","depth":3,"children":[]}]}],"codeExamples":{}},"jsLinks":["/_mintlify/custom/qawolf/31405aa6fa182398/qawolf-attribution-handler.js","/_mintlify/custom/qawolf/ded78afb53673389/qawolf-signup-handler.js","/_mintlify/custom/qawolf/e00fee94bfdab7ef/posthog_utils.js"],"subdomain":"qawolf","siteName":"QA Wolf Docs","title":"Smart Smoke Suites - QA Wolf Docs","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-15T16:13:12.022Z","gitLastModified":"2026-10-15T16:12:58.000Z","originalFileLocation":"smart-smoke-suites.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"dark\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Let QA Wolf automatically select the flows affected by your PR.\">\u003cmeta data-mint-head name=\"application-name\" content=\"QA Wolf Docs\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/qawolf/YyZP4y1fCTI_w0fv/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/qawolf/YyZP4y1fCTI_w0fv/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/qawolf/YyZP4y1fCTI_w0fv/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/qawolf/YyZP4y1fCTI_w0fv/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/qawolf/YyZP4y1fCTI_w0fv/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/qawolf/YyZP4y1fCTI_w0fv/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/qawolf/YyZP4y1fCTI_w0fv/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/qawolf/YyZP4y1fCTI_w0fv/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/qawolf/YyZP4y1fCTI_w0fv/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Smart Smoke Suites - QA Wolf Docs\">\u003cmeta data-mint-head property=\"og:description\" content=\"Let QA Wolf automatically select the flows affected by your PR.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"QA Wolf Docs\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.qawolf.com/smart-smoke-suites\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://qawolf.mintlify.app/_mintlify/api/og/v2?division=Run+Orchestration\u0026amp;title=Smart+Smoke+Suites\u0026amp;description=Let+QA+Wolf+automatically+select+the+flows+affected+by+your+PR.\u0026amp;theme=319affbc930523d4b89abf45\u0026amp;signature=30a91afaf20afcb303efc0d05107fe1afedbf17838d1af915f563ff8a05f32da\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Smart Smoke Suites - QA Wolf Docs\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Let QA Wolf automatically select the flows affected by your PR.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://qawolf.mintlify.app/_mintlify/api/og/v2?division=Run+Orchestration\u0026amp;title=Smart+Smoke+Suites\u0026amp;description=Let+QA+Wolf+automatically+select+the+flows+affected+by+your+PR.\u0026amp;theme=319affbc930523d4b89abf45\u0026amp;signature=30a91afaf20afcb303efc0d05107fe1afedbf17838d1af915f563ff8a05f32da\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/qawolf/YyZP4y1fCTI_w0fv/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"QA Wolf Docs\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#3b3cef\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.qawolf.com/smart-smoke-suites\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/smart-smoke-suites.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.qawolf.com/#organization\",\"name\":\"QA Wolf Docs\",\"url\":\"https://docs.qawolf.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/qawolf/8HFRRs7AoYV9S40R/logo/light.svg?fit=max\u0026auto=format\u0026n=8HFRRs7AoYV9S40R\u0026q=85\u0026s=b9d699b988c7eab072287836c4d9e0d2\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.qawolf.com#website\",\"name\":\"QA Wolf Docs\",\"url\":\"https://docs.qawolf.com\",\"publisher\":{\"@id\":\"https://docs.qawolf.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.qawolf.com/smart-smoke-suites#webpage\",\"url\":\"https://docs.qawolf.com/smart-smoke-suites\",\"name\":\"Smart Smoke Suites\",\"description\":\"Let QA Wolf automatically select the flows affected by your PR.\",\"dateModified\":\"2026-10-15T16:12:58.000Z\",\"isPartOf\":{\"@id\":\"https://docs.qawolf.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.qawolf.com/smart-smoke-suites#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.qawolf.com/smart-smoke-suites#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Run Orchestration\",\"item\":\"https://docs.qawolf.com/triggers/overview\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Smart Smoke Suites\",\"item\":\"https://docs.qawolf.com/smart-smoke-suites\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.qawolf.com/smart-smoke-suites#article\",\"headline\":\"Smart Smoke Suites\",\"name\":\"Smart Smoke Suites\",\"description\":\"Let QA Wolf automatically select the flows affected by your PR.\",\"url\":\"https://docs.qawolf.com/smart-smoke-suites\",\"mainEntityOfPage\":{\"@id\":\"https://docs.qawolf.com/smart-smoke-suites#webpage\"},\"dateModified\":\"2026-10-15T16:12:58.000Z\",\"publisher\":{\"@id\":\"https://docs.qawolf.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.qawolf.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"QA Wolf Docs\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"QA Wolf Docs","nav":{"global":null,"tabs":[{"tab":"Start","pages":[{"title":"Start","href":""}]},{"tab":"Features","groups":[{"group":"Agentic QA","pages":[{"title":"Coverage Mapping","href":"/product-mapping"},{"title":"Test Automation","href":"/test-automation"},{"title":"Custom skills","sidebarTitle":"Custom skills","href":"/custom-skills"},{"title":"QA Wolf MCP","href":"/qawolf-mcp"}]},{"group":"Run Orchestration","pages":[{"title":"Triggers","description":"Run a set of flows when your application deploys, or on a schedule.","sidebarTitle":"Triggers","href":"/triggers/overview"},{"title":"Smart Smoke Suites","href":"/smart-smoke-suites"},{"title":"Run Rules","description":"Order and co-schedule the flows in a run with a rules.yaml file in your flows repository.","href":"/Run-Rules"},{"title":"Concurrency limits","href":"/concurrency-limits"},{"title":"Tags","href":"/tags"}]},{"group":"Authentication","pages":[{"title":"Configure Single Sign-On (SSO)","sidebarTitle":"SSO","href":"/sso"}]}]},{"tab":"Solutions","pages":[{"title":"Solutions","href":"/solutions"}]},{"tab":"References","pages":[{"title":"References","href":"/anatomy-of-a-flow"}]},{"tab":"Integrations","pages":[{"title":"Integrations","href":"/integrations"}]},{"tab":"Full Service","pages":[{"title":"Full Service","href":"/onboarding-to-full-service"}]}]},"title":"Smart Smoke Suites - QA Wolf Docs","buildId":"dpl_DFJrtvUi8HS5F9nkooKuDJsuD5BM","deploymentId":"dpl_DFJrtvUi8HS5F9nkooKuDJsuD5BM","dynamics":[],"chunks":[]}