Walk through the task configuration editor and build a working job from an empty configuration.
A task configuration describes one repeatable content job. This page walks through the editor top to bottom and builds a simple product description task.Open Task configurations and click Add config.
The specialist is the role the model plays, and the model it runs on. Pick one that matches the job — a content writer for marketing copy, an extractor for structured attributes.The specialist prompt describes who the AI is and how it behaves. It does not describe the output format, the field limits, or the quality criteria — the platform injects those from elsewhere in the configuration.
Resist the urge to write everything into this prompt. A requirement repeated in the prompt and in a quality rule will drift out of sync, and the rule is the one that is actually enforced. Where each requirement belongs
A variant is a dimension the output varies across — language, brand, audience, persona. Each dimension has options, and each option carries fields describing it.
{ "label": "Language", "instruction": "Generate all customer-facing content in this language.", "options": { "Danish": [ { "key": "Tone", "value": "Direct, informal address" }, { "key": "Terminology", "value": "Use the Danish product vocabulary, not English loanwords" } ], "English (UK)": [ { "key": "Tone", "value": "Neutral, professional" }, { "key": "Spelling", "value": "UK spelling throughout" } ] }}
When you start a session you pick one option per dimension, and each combination produces its own output. Two languages and two audiences means four outputs per record.
Dimension or field? Add a new dimension only when the thing genuinely needs its own output per option. If it is extra information shaping the same output — tone notes, reading level, terminology — it belongs as a field on an existing option. Variants
Keep to 2–3 fields per option. Every field is a constraint the model has to hold, and if removing a field would not change the output, remove it.
Under AI can also… you attach capabilities — looking up data in an index, calling an external MCP server, searching the web, or seeing the document’s images.Most first configurations need none of these. Add them when the job genuinely cannot be done from the document alone. Capabilities
Route every black-and-white criterion to code. Models cannot reliably count characters or match strings; a schema rule does both in under ten milliseconds at zero token cost. Save AI evaluation for what actually requires language understanding. Quality checks
Keep to around five rules. Quality checks are for what must be verified every single time, not a wish list — more rules mean more prompt weight, more cost, and a twitchier gate.
The gate decides how the individual scores add up to accept or reject. Balanced is the right default and is described in plain language in the editor. Quality gates
Save Changes stores a draft. Preview runs it over a few documents so you can see real output. Publish makes the version live.Do them in that order, every time. Preview and review
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Enterspeed Docs","colors":{"primary":"#0018ff","light":"#99bfdd","dark":"#000035"},"logo":{"light":"https://mintcdn.com/enterspeed/epLxx3NKRbzcMz_w/images/Enterspeed_Logo_RGB_Black.svg?fit=max\u0026auto=format\u0026n=epLxx3NKRbzcMz_w\u0026q=85\u0026s=491f6b7030bd2783bc3e51bb7183237e","dark":"https://mintcdn.com/enterspeed/ZSYX286dEXJYPh8A/images/Enterspeed_Logo_RGB_DIAP.svg?fit=max\u0026auto=format\u0026n=ZSYX286dEXJYPh8A\u0026q=85\u0026s=57859398954b59778cd723e0b9e4dca5"},"favicon":{"light":"https://mintcdn.com/enterspeed/epLxx3NKRbzcMz_w/images/favicon.svg?fit=max\u0026auto=format\u0026n=epLxx3NKRbzcMz_w\u0026q=85\u0026s=2e00ec680e7f80f676f9d4748626ec0f","dark":"https://mintcdn.com/enterspeed/epLxx3NKRbzcMz_w/images/favicon.svg?fit=max\u0026auto=format\u0026n=epLxx3NKRbzcMz_w\u0026q=85\u0026s=2e00ec680e7f80f676f9d4748626ec0f"},"background":{"decoration":"grid"},"navbar":{"links":[{"href":"https://www.enterspeedstatus.com/","label":"Status"}]},"footer":{"socials":{"github":"https://github.com/enterspeedhq","linkedin":"https://www.linkedin.com/company/enterspeed","website":"https://www.enterspeed.com/","youtube":"https://www.youtube.com/@enterspeedhq"},"links":[{"header":"Company","items":[{"label":"Enterspeed","href":"https://www.enterspeed.com"},{"label":"Contact Us","href":"https://www.enterspeed.com/contact"},{"label":"Privacy Policy","href":"https://www.enterspeed.com/privacy-policy"}]},{"header":"Resources","items":[{"label":"Blog","href":"https://www.enterspeed.com/blog"},{"label":"Product Updates","href":"https://updates.enterspeed.com/"},{"label":"Newsletter Signup","href":"https://content.enterspeed.com/newsletter-signup"},{"label":"Privacy Policy","href":"https://www.enterspeed.com/privacy-policy"}]}]},"search":{"prompt":"Search docs"},"icons":{"library":"fontawesome"},"styling":{"eyebrows":"breadcrumbs","latex":false},"integrations":{"gtm":{"tagId":"GTM-N32R9R7"},"mixpanel":{"projectToken":"efb544fc5e5319cb4a082b0154e14df2","region":"eu"}},"contextual":{"options":["copy","view","chatgpt","claude","perplexity","mcp","cursor","vscode","download-spec"],"display":"header"},"interaction":{"drilldown":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"enterspeed","hasAudioNarration":false,"actualSubdomain":"enterspeed","customDomains":["docs.enterspeed.com"],"gitSource":{"type":"github","owner":"enterspeedhq","repo":"enterspeed-docs","deployBranch":"master","contentDirectory":"","isPrivate":false,"mountPath":"","label":""},"chroma":{"collectionId":"7e4f606c-3f05-4fbe-9449-4d76a8e5937e","liveDeploymentHistoryId":"6ae97f33e98d225f8a4a25c1","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ae97f33e98d225f8a4a25c1"},"feedback":{"thumbs":true,"edits":true,"issues":true},"entitlements":{"AI_CHAT":{"status":"DISABLED"}},"buildId":"6ae9c20c98ee2cfbfea836ef","clientVersion":"0.0.4045","searchFilterCounts":[{"language":"default","tag":"Enterspeed","count":136},{"language":"default","tag":"Overview","count":46},{"language":"default","tag":"Integrations","count":43},{"language":"default","tag":"Source integrations","count":30},{"language":"default","tag":"Speedtrain","count":29},{"language":"default","tag":"Key concepts","count":23},{"language":"default","tag":"Umbraco","count":21},{"language":"default","tag":"Tutorials","count":20},{"language":"default","tag":"Schema reference","count":19},{"language":"default","tag":"Getting started","count":16}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"privacy":{"consentBanner":{"enabled":false}},"googleFontsInlined":false},"customCss":[{"filePath":"style.css","content":".integration-logos .card img{background-color:#f0f3f7;border-radius:.5rem;padding:.75rem;box-sizing:border-box}.dark .integration-logos .card img{background-color:#000035}"}],"page":{"pagePath":"speedtrain/getting-started/task-configuration","slug":"/speedtrain/getting-started/task-configuration","pageMetadata":{"title":"Build a task configuration","description":"Walk through the task configuration editor and build a working job from an empty configuration.","href":"/speedtrain/getting-started/task-configuration"},"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: \"Walk through the task configuration editor and build a working job from an empty configuration.\"\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`,em:`em`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,..._provideComponents(),...props.components},{CodeBlock,Heading,Info,Table,Tip,Warning}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Info)_missingMdxReference(`Info`,true);if(!Table)_missingMdxReference(`Table`,true);if(!Tip)_missingMdxReference(`Tip`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsx(_components.p,{children:`A task configuration describes one repeatable content job. This page walks through the editor top to bottom and builds a simple product description task.`}),`\n`,_jsxs(_components.p,{children:[`Open `,_jsx(_components.strong,{children:`Task configurations`}),` and click `,_jsx(_components.strong,{children:`Add config`}),`.`]}),`\n`,_jsx(Heading,{level:`2`,id:`1-choose-an-ai-specialist`,children:`1. Choose an AI specialist`}),`\n`,_jsx(_components.p,{children:`The specialist is the role the model plays, and the model it runs on. Pick one that matches the job — a content writer for marketing copy, an extractor for structured attributes.`}),`\n`,_jsxs(_components.p,{children:[`The specialist prompt describes `,_jsx(_components.strong,{children:`who the AI is and how it behaves`}),`. It does not describe the output format, the field limits, or the quality criteria — the platform injects those from elsewhere in the configuration.`]}),`\n`,_jsx(Warning,{children:_jsxs(_components.p,{children:[`Resist the urge to write everything into this prompt. A requirement repeated in the prompt `,_jsx(_components.em,{children:`and`}),` in a quality rule will drift out of sync, and the rule is the one that is actually enforced. `,_jsx(_components.a,{href:`/speedtrain/authoring/placement`,children:`Where each requirement belongs`})]})}),`\n`,_jsx(Heading,{level:`2`,id:`2-add-variants`,children:`2. Add variants`}),`\n`,_jsxs(_components.p,{children:[`A variant is a `,_jsx(_components.strong,{children:`dimension the output varies across`}),` — language, brand, audience, persona. Each dimension has options, and each option carries fields describing it.`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`14`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`14`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"label\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Language\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"instruction\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Generate all customer-facing content in this language.\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"options\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"Danish\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: [`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` { `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"key\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Tone\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"value\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Direct, informal address\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` },`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` { `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"key\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Terminology\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"value\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Use the Danish product vocabulary, not English loanwords\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` ],`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"English (UK)\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: [`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` { `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"key\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Tone\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"value\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Neutral, professional\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` },`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` { `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"key\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Spelling\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"value\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"UK spelling throughout\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` ]`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[`When you start a session you pick `,_jsx(_components.strong,{children:`one option per dimension`}),`, and each combination produces its own output. Two languages and two audiences means four outputs per record.`]}),`\n`,_jsx(Info,{children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Dimension or field?`}),` Add a new dimension only when the thing genuinely needs its own output per option. If it is extra information shaping the same output — tone notes, reading level, terminology — it belongs as a field on an existing option. `,_jsx(_components.a,{href:`/speedtrain/key-concepts/variants`,children:`Variants`})]})}),`\n`,_jsx(_components.p,{children:`Keep to 2–3 fields per option. Every field is a constraint the model has to hold, and if removing a field would not change the output, remove it.`}),`\n`,_jsx(Heading,{level:`2`,id:`3-give-the-ai-extra-abilities`,children:`3. Give the AI extra abilities`}),`\n`,_jsxs(_components.p,{children:[`Under `,_jsx(_components.strong,{children:`AI can also…`}),` you attach capabilities — looking up data in an index, calling an external MCP server, searching the web, or seeing the document’s images.`]}),`\n`,_jsxs(_components.p,{children:[`Most first configurations need none of these. Add them when the job genuinely cannot be done from the document alone. `,_jsx(_components.a,{href:`/speedtrain/key-concepts/capabilities`,children:`Capabilities`})]}),`\n`,_jsx(Heading,{level:`2`,id:`4-write-the-quality-checks`,children:`4. Write the quality checks`}),`\n`,_jsx(_components.p,{children:`This is the part that makes the job trustworthy. Three rule types are available:`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Type`}),_jsx(_components.th,{children:`Runs as`}),_jsx(_components.th,{children:`Use it for`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`JSON Schema`}),_jsx(_components.td,{children:`Code`}),_jsx(_components.td,{children:`The output contract — field names, types, length limits, enums, patterns`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Forbidden terms`}),_jsx(_components.td,{children:`Code`}),_jsx(_components.td,{children:`Exact words and phrases that must never appear`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`AI evaluation`}),_jsx(_components.td,{children:`A model call`}),_jsx(_components.td,{children:`Questions that genuinely need judgment — tone, naturalness, grounding`})]})]})]}),`\n`,_jsx(_components.p,{children:`Start with a schema rule. Every configuration should have one, because it is the only thing that machine-enforces the shape of the output:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`8`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`8`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"type\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"object\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"required\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: [`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"title\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"description\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`],`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"properties\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"title\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: { `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"type\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"string\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"maxLength\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`60`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` },`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"description\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: { `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"type\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"string\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"minLength\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`200`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"maxLength\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`800`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),`\n`,_jsx(Tip,{children:_jsxs(_components.p,{children:[`Route every black-and-white criterion to code. Models cannot reliably count characters or match strings; a schema rule does both in under ten milliseconds at zero token cost. Save AI evaluation for what actually requires language understanding. `,_jsx(_components.a,{href:`/speedtrain/key-concepts/quality-checks`,children:`Quality checks`})]})}),`\n`,_jsx(_components.p,{children:`Keep to around five rules. Quality checks are for what must be verified every single time, not a wish list — more rules mean more prompt weight, more cost, and a twitchier gate.`}),`\n`,_jsx(Heading,{level:`2`,id:`5-set-the-quality-gate`,children:`5. Set the quality gate`}),`\n`,_jsxs(_components.p,{children:[`The gate decides how the individual scores add up to accept or reject. `,_jsx(_components.strong,{children:`Balanced`}),` is the right default and is described in plain language in the editor. `,_jsx(_components.a,{href:`/speedtrain/key-concepts/quality-gates`,children:`Quality gates`})]}),`\n`,_jsx(Heading,{level:`2`,id:`6-add-special-instructions-optional`,children:`6. Add special instructions (optional)`}),`\n`,_jsx(_components.p,{children:`Free text for generation-only context — campaign notes, edge cases, one-off guidance.`}),`\n`,_jsx(Warning,{children:_jsx(_components.p,{children:`Quality checks never see special instructions. Anything that must be verified does not belong here.`})}),`\n`,_jsx(Heading,{level:`2`,id:`save-preview-publish`,children:`Save, preview, publish`}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Save Changes`}),` stores a draft. `,_jsx(_components.strong,{children:`Preview`}),` runs it over a few documents so you can see real output. `,_jsx(_components.strong,{children:`Publish`}),` makes the version live.`]}),`\n`,_jsxs(_components.p,{children:[`Do them in that order, every time. `,_jsx(_components.a,{href:`/speedtrain/getting-started/preview-and-review`,children:`Preview and review`})]})]})}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":"Build a task configuration","description":"Walk through the task configuration editor and build a working job from an empty configuration.","href":"/speedtrain/getting-started/task-configuration"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"1. Choose an AI specialist","slug":"1-choose-an-ai-specialist","depth":2,"children":[]},{"title":"2. Add variants","slug":"2-add-variants","depth":2,"children":[]},{"title":"3. Give the AI extra abilities","slug":"3-give-the-ai-extra-abilities","depth":2,"children":[]},{"title":"4. Write the quality checks","slug":"4-write-the-quality-checks","depth":2,"children":[]},{"title":"5. Set the quality gate","slug":"5-set-the-quality-gate","depth":2,"children":[]},{"title":"6. Add special instructions (optional)","slug":"6-add-special-instructions-optional","depth":2,"children":[]},{"title":"Save, preview, publish","slug":"save-preview-publish","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"enterspeed","siteName":"Enterspeed Docs","title":"Build a task configuration - Enterspeed Docs","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-09-24T07:29:05.317Z","originalFileLocation":"speedtrain/getting-started/task-configuration.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=\"system\"}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=\"Walk through the task configuration editor and build a working job from an empty configuration.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Enterspeed 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/enterspeed/DjjqapwY-6NONS8k/_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/enterspeed/DjjqapwY-6NONS8k/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/enterspeed/DjjqapwY-6NONS8k/_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/enterspeed/DjjqapwY-6NONS8k/_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/enterspeed/DjjqapwY-6NONS8k/_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/enterspeed/DjjqapwY-6NONS8k/_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/enterspeed/DjjqapwY-6NONS8k/_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/enterspeed/DjjqapwY-6NONS8k/_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/enterspeed/DjjqapwY-6NONS8k/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Build a task configuration - Enterspeed Docs\">\u003cmeta data-mint-head property=\"og:description\" content=\"Walk through the task configuration editor and build a working job from an empty configuration.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Enterspeed Docs\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.enterspeed.com/speedtrain/getting-started/task-configuration\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://enterspeed.mintlify.app/_mintlify/api/og/v2?division=Getting+started\u0026amp;title=Build+a+task+configuration\u0026amp;description=Walk+through+the+task+configuration+editor+and+build+a+working+job+from+an+empty+configuration.\u0026amp;theme=46924038ce8145a2b946a524\u0026amp;signature=c6ed513c6262d038755481672c1048342ca1b937614dbd4cb192b2a1c32b3248\">\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=\"Build a task configuration - Enterspeed Docs\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Walk through the task configuration editor and build a working job from an empty configuration.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://enterspeed.mintlify.app/_mintlify/api/og/v2?division=Getting+started\u0026amp;title=Build+a+task+configuration\u0026amp;description=Walk+through+the+task+configuration+editor+and+build+a+working+job+from+an+empty+configuration.\u0026amp;theme=46924038ce8145a2b946a524\u0026amp;signature=c6ed513c6262d038755481672c1048342ca1b937614dbd4cb192b2a1c32b3248\">\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/enterspeed/DjjqapwY-6NONS8k/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Enterspeed Docs\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#0018ff\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.enterspeed.com/speedtrain/getting-started/task-configuration\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/speedtrain/getting-started/task-configuration.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.enterspeed.com/#organization\",\"name\":\"Enterspeed Docs\",\"url\":\"https://docs.enterspeed.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/enterspeed/epLxx3NKRbzcMz_w/images/Enterspeed_Logo_RGB_Black.svg?fit=max\u0026auto=format\u0026n=epLxx3NKRbzcMz_w\u0026q=85\u0026s=491f6b7030bd2783bc3e51bb7183237e\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.enterspeed.com#website\",\"name\":\"Enterspeed Docs\",\"url\":\"https://docs.enterspeed.com\",\"publisher\":{\"@id\":\"https://docs.enterspeed.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.enterspeed.com/speedtrain/getting-started/task-configuration#webpage\",\"url\":\"https://docs.enterspeed.com/speedtrain/getting-started/task-configuration\",\"name\":\"Build a task configuration\",\"description\":\"Walk through the task configuration editor and build a working job from an empty configuration.\",\"dateModified\":\"2026-09-24T07:29:05.317Z\",\"isPartOf\":{\"@id\":\"https://docs.enterspeed.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.enterspeed.com/speedtrain/getting-started/task-configuration#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.enterspeed.com/speedtrain/getting-started/task-configuration#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Overview\",\"item\":\"https://docs.enterspeed.com/speedtrain/intro\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Getting started\",\"item\":\"https://docs.enterspeed.com/speedtrain/getting-started/intro\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Build a task configuration\",\"item\":\"https://docs.enterspeed.com/speedtrain/getting-started/task-configuration\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.enterspeed.com/speedtrain/getting-started/task-configuration#article\",\"headline\":\"Build a task configuration\",\"name\":\"Build a task configuration\",\"description\":\"Walk through the task configuration editor and build a working job from an empty configuration.\",\"url\":\"https://docs.enterspeed.com/speedtrain/getting-started/task-configuration\",\"mainEntityOfPage\":{\"@id\":\"https://docs.enterspeed.com/speedtrain/getting-started/task-configuration#webpage\"},\"dateModified\":\"2026-09-24T07:29:05.317Z\",\"publisher\":{\"@id\":\"https://docs.enterspeed.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.enterspeed.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Enterspeed Docs\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Enterspeed Docs","nav":{"global":null,"products":[{"product":"Enterspeed","icon":"gear-complex-api","description":"The data orchestration layer","pages":[{"title":"Enterspeed","href":"/enterspeed/welcome"}]},{"product":"Speedtrain","icon":"microchip-ai","description":"Governed AI content enrichment","pages":[{"group":"Overview","pages":[{"title":"What is Speedtrain","sidebarTitle":"Introduction","href":"/speedtrain/intro"},{"title":"How data moves between Enterspeed and Speedtrain","sidebarTitle":"Data flow","href":"/speedtrain/data-flow"},{"title":"How it works","href":"/speedtrain/how-it-works"},{"title":"Use cases","href":"/speedtrain/use-cases"},{"group":"Getting started","icon":"circle-play","pages":[{"title":"Getting started","sidebarTitle":"Overview","href":"/speedtrain/getting-started/intro"},{"title":"Tenants and environments","href":"/speedtrain/getting-started/tenants-and-environments"},{"title":"Add a content source","description":"Create an index and get your records into Speedtrain so a task can run over them.","href":"/speedtrain/getting-started/content-source"},{"title":"Build a task configuration","href":"/speedtrain/getting-started/task-configuration"},{"title":"Preview and review","description":"Run a configuration over real documents, read the quality scores, and decide what to accept.","href":"/speedtrain/getting-started/preview-and-review"},{"title":"Publish the results","href":"/speedtrain/getting-started/publish"}]},{"group":"Key concepts","icon":"lightbulb-on","pages":[{"title":"Key concepts","sidebarTitle":"Overview","href":"/speedtrain/key-concepts/overview"},{"title":"Content sources","href":"/speedtrain/key-concepts/content-sources"},{"title":"Task configurations","href":"/speedtrain/key-concepts/task-configurations"},{"title":"AI specialists","href":"/speedtrain/key-concepts/ai-specialists"},{"title":"Variants","href":"/speedtrain/key-concepts/variants"},{"title":"Capabilities","href":"/speedtrain/key-concepts/capabilities"},{"title":"Quality checks","href":"/speedtrain/key-concepts/quality-checks"},{"title":"Quality gates","href":"/speedtrain/key-concepts/quality-gates"},{"title":"Review sessions","href":"/speedtrain/key-concepts/review-sessions"},{"title":"Destinations","href":"/speedtrain/key-concepts/destinations"},{"title":"Workflows","href":"/speedtrain/key-concepts/workflows"}]}]},{"group":"Authoring guide","icon":"compass","pages":[{"title":"Where each requirement belongs","sidebarTitle":"Placement","href":"/speedtrain/authoring/placement"},{"title":"Best practices","href":"/speedtrain/authoring/best-practices"},{"title":"Iterating a configuration","sidebarTitle":"Troubleshooting","href":"/speedtrain/authoring/troubleshooting"}]},{"group":"Settings","icon":"gear","pages":[{"title":"Management clients","href":"/speedtrain/settings/management-clients"},{"title":"Tool credentials","href":"/speedtrain/settings/tool-credentials"}]},{"group":"MCP server","icon":"plug","pages":[{"title":"MCP server","sidebarTitle":"Overview","href":"/speedtrain/mcp-server/overview"},{"title":"Connect to the MCP server","sidebarTitle":"Connect","href":"/speedtrain/mcp-server/connect"},{"title":"Management MCP tools","sidebarTitle":"Tools","href":"/speedtrain/mcp-server/tools"}]}]}]},"basePath":"","title":"Build a task configuration - Enterspeed Docs","buildId":"dpl_36EDyZCDfRuoUD9af5CH4M1bqY2h","deploymentId":"dpl_36EDyZCDfRuoUD9af5CH4M1bqY2h","dynamics":[],"chunks":[]}