Ask Claude to build 10 similar data tables and you’ll get 10 slightly different implementations. Different error handling, different loading states, different prop naming. Each works individually but the codebase feels inconsistent.This isn’t a model limitation — it’s a prompting structure problem. Without an explicit pattern to follow, Claude makes reasonable but varied choices each time.
Build the first 2-3 instances by hand (or with Claude, but review carefully). The goal is to establish the canonical implementation — the version you want replicated.
"Build a data table for /users with columns: name, email, role, status.Include loading state, empty state, error state, and pagination."
Review the output. Fix anything you don’t like. This becomes your reference.
Extract the pattern from your reference implementation into CLAUDE.md or a skill:
## Data Table PatternWhen building data tables, follow src/components/tables/UsersTable.tsx as the reference:- Use the `DataTable` component from src/components/ui/data-table- Loading: skeleton rows matching column count- Empty: centered message with action button- Error: inline alert with retry- Pagination: server-side, 25 rows default- Column definitions in a separate `columns.tsx` file
Now Claude has a concrete example to follow, not just abstract instructions.
"Create data tables for /orders, /products, and /invoices followingthe Data Table Pattern in CLAUDE.md. Reference src/components/tables/UsersTable.tsxfor the canonical implementation."
Each instance follows the same structure. Differences are intentional (column definitions, filters) rather than accidental (different error handling approaches).
Don’t build a permutation framework for code you’ll write once. The 3-phase system pays off when you’re generating 5+ similar things. Below that threshold, the setup cost exceeds the consistency benefit.
After generating multiple instances, spot-check for drift:
"Compare the error handling in OrdersTable, ProductsTable, and InvoicesTable.Flag any deviations from the pattern in UsersTable."
This is a good task for a validator agent with read-only tools.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Agentic Engineering","colors":{"primary":"#5258FB","light":"#999AFD","dark":"#5258FB"},"logo":{"light":"https://mintcdn.com/proxifyab/N6NscdVBMIpMsn4J/logo/logo-proxify-dark.svg?fit=max\u0026auto=format\u0026n=N6NscdVBMIpMsn4J\u0026q=85\u0026s=fc616d0a8dfa55d2130f6385bc70aa24","dark":"https://mintcdn.com/proxifyab/N6NscdVBMIpMsn4J/logo/logo-proxify-white.svg?fit=max\u0026auto=format\u0026n=N6NscdVBMIpMsn4J\u0026q=85\u0026s=1111bafa0302bc95c661a72b7cde45b8"},"favicon":"https://mintcdn.com/proxifyab/vL0ghOSxfgtLnIhV/favicon.ico?fit=max\u0026auto=format\u0026n=vL0ghOSxfgtLnIhV\u0026q=85\u0026s=a679f9da38192c5224c2230f4073a1bc","styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"proxifyab","hasAudioNarration":false,"actualSubdomain":"proxifyab","customDomains":["agentic.proxify.io"],"gitSource":{"type":"github","owner":"proxify-dev","repo":"agentic-playbook","deployBranch":"main","contentDirectory":"docs","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6acc82cec9710b317916c0cb","collectionId":"2f6585ff-3bf8-4284-8d19-1f770e252b96","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6acc82cec9710b317916c0cb"},"entitlements":{},"buildId":"6acc82cec9710b317916c0cb","clientVersion":"0.0.3966","searchFilterCounts":[{"language":"default","tag":"Playbook","count":19},{"language":"default","tag":"Quickstart","count":16},{"language":"default","tag":"Multi-Agent","count":9},{"language":"default","tag":"Explore","count":7},{"language":"default","tag":"Community Resources","count":7},{"language":"default","tag":"Mindset","count":6},{"language":"default","tag":"Orchestration Patterns","count":6},{"language":"default","tag":"Setup","count":6},{"language":"default","tag":"Daily Workflow","count":5},{"language":"default","tag":"Operations","count":3}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"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":"editor-v7-file-tree","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":"pause-universal-search-reconcile","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":"per-site-search-delta","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":"editor-private-page-search","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":"editor-nav-generations","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":"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":"editor-agent-model-picker","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":"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}],"isAtlas":false,"googleFontsInlined":false},"customCss":[{"filePath":"custom.css","content":"table td img{display:inline!important;vertical-align:middle!important;margin:0!important}"}],"page":{"pagePath":"patterns/permutation-frameworks","slug":"/patterns/permutation-frameworks","pageMetadata":{"title":"Permutation Frameworks","description":"A three-phase system for consistent, repeatable code generation at scale.","href":"/patterns/permutation-frameworks"},"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: \"A three-phase system for consistent, repeatable code generation at scale.\"\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`,hr:`hr`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,..._provideComponents(),...props.components},{CodeBlock,Heading,Note,Table}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Note)_missingMdxReference(`Note`,true);if(!Table)_missingMdxReference(`Table`,true);return _jsxs(_Fragment,{children:[_jsxs(Note,{children:[_jsx(_components.strong,{children:`You’ll learn:`}),` How to move from one-off code generation to repeatable patterns that Claude can apply consistently across dozens of similar features.`]}),`\n`,_jsx(Heading,{level:`2`,id:`the-problem`,children:`The Problem`}),`\n`,_jsx(_components.p,{children:`Ask Claude to build 10 similar data tables and you’ll get 10 slightly different implementations. Different error handling, different loading states, different prop naming. Each works individually but the codebase feels inconsistent.`}),`\n`,_jsx(_components.p,{children:`This isn’t a model limitation — it’s a prompting structure problem. Without an explicit pattern to follow, Claude makes reasonable but varied choices each time.`}),`\n`,_jsx(Heading,{level:`2`,id:`three-phases`,children:`Three Phases`}),`\n`,_jsx(Heading,{level:`3`,id:`phase-1-manual-foundation`,children:`Phase 1: Manual Foundation`}),`\n`,_jsx(_components.p,{children:`Build the first 2-3 instances by hand (or with Claude, but review carefully). The goal is to establish the canonical implementation — the version you want replicated.`}),`\n`,_jsx(CodeBlock,{numberOfLines:`3`,language:`text`,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:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`3`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`\"Build a data table for /users with columns: name, email, role, status.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Include loading state, empty state, error state, and pagination.\"`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),`\n`,_jsx(_components.p,{children:`Review the output. Fix anything you don’t like. This becomes your reference.`}),`\n`,_jsx(Heading,{level:`3`,id:`phase-2-pattern-recognition`,children:`Phase 2: Pattern Recognition`}),`\n`,_jsx(_components.p,{children:`Extract the pattern from your reference implementation into CLAUDE.md or a skill:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`8`,language:`markdown`,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:`markdown`,children:_jsxs(_components.code,{language:`markdown`,numberOfLines:`8`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-light-font-weight\":`bold`,\"--shiki-dark\":`#569CD6`,\"--shiki-dark-font-weight\":`bold`},children:`## Data Table Pattern`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`When building data tables, follow src/components/tables/UsersTable.tsx as the reference:`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#6796E6`},children:`-`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` Use the `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#CE9178`},children:\"`DataTable`\"}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` component from src/components/ui/data-table`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#6796E6`},children:`-`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` Loading: skeleton rows matching column count`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#6796E6`},children:`-`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` Empty: centered message with action button`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#6796E6`},children:`-`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` Error: inline alert with retry`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#6796E6`},children:`-`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` Pagination: server-side, 25 rows default`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#6796E6`},children:`-`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` Column definitions in a separate `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#CE9178`},children:\"`columns.tsx`\"}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` file`})]}),`\n`]})})}),`\n`,_jsx(_components.p,{children:`Now Claude has a concrete example to follow, not just abstract instructions.`}),`\n`,_jsx(Heading,{level:`3`,id:`phase-3-automated-generation`,children:`Phase 3: Automated Generation`}),`\n`,_jsx(_components.p,{children:`With the pattern documented, you can fan out:`}),`\n`,_jsx(CodeBlock,{numberOfLines:`4`,language:`text`,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:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`4`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`\"Create data tables for /orders, /products, and /invoices following`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`the Data Table Pattern in CLAUDE.md. Reference src/components/tables/UsersTable.tsx`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`for the canonical implementation.\"`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),`\n`,_jsx(_components.p,{children:`Each instance follows the same structure. Differences are intentional (column definitions, filters) rather than accidental (different error handling approaches).`}),`\n`,_jsx(Heading,{level:`2`,id:`when-to-use-this`,children:`When to Use This`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Scenario`}),_jsx(_components.th,{children:`Payoff`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Building 5+ similar components (tables, forms, cards)`}),_jsx(_components.td,{children:`High — consistency across features`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`API endpoints with shared conventions`}),_jsx(_components.td,{children:`High — uniform error handling, validation`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Migration patterns (v1 → v2 of an API)`}),_jsx(_components.td,{children:`High — reduces review burden`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`One-off features`}),_jsx(_components.td,{children:`Low — the overhead isn’t worth it`})]})]})]}),`\n`,_jsx(Heading,{level:`2`,id:`when-not-to-optimize`,children:`When NOT to Optimize`}),`\n`,_jsxs(_components.p,{children:[`Don’t build a permutation framework for code you’ll write once. The 3-phase system pays off when you’re generating `,_jsx(_components.strong,{children:`5+ similar things`}),`. Below that threshold, the setup cost exceeds the consistency benefit.`]}),`\n`,_jsx(Heading,{level:`2`,id:`variance-testing`,children:`Variance Testing`}),`\n`,_jsx(_components.p,{children:`After generating multiple instances, spot-check for drift:`}),`\n`,_jsx(CodeBlock,{numberOfLines:`3`,language:`text`,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:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`3`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`\"Compare the error handling in OrdersTable, ProductsTable, and InvoicesTable.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Flag any deviations from the pattern in UsersTable.\"`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),`\n`,_jsxs(_components.p,{children:[`This is a good task for a `,_jsx(_components.a,{href:`orchestration-patterns#builder-validator-pairs`,children:`validator agent`}),` with read-only tools.`]}),`\n`,_jsx(_components.hr,{})]})}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":"Permutation Frameworks","description":"A three-phase system for consistent, repeatable code generation at scale.","href":"/patterns/permutation-frameworks"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"The Problem","slug":"the-problem","depth":2,"children":[]},{"title":"Three Phases","slug":"three-phases","depth":2,"children":[{"title":"Phase 1: Manual Foundation","slug":"phase-1-manual-foundation","depth":3,"children":[]},{"title":"Phase 2: Pattern Recognition","slug":"phase-2-pattern-recognition","depth":3,"children":[]},{"title":"Phase 3: Automated Generation","slug":"phase-3-automated-generation","depth":3,"children":[]}]},{"title":"When to Use This","slug":"when-to-use-this","depth":2,"children":[]},{"title":"When NOT to Optimize","slug":"when-not-to-optimize","depth":2,"children":[]},{"title":"Variance Testing","slug":"variance-testing","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"proxifyab","siteName":"Agentic Engineering","title":"Permutation Frameworks - Agentic Engineering","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-03-25T16:44:46.175Z","originalFileLocation":"patterns/permutation-frameworks.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=\"A three-phase system for consistent, repeatable code generation at scale.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Agentic Engineering\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/proxifyab/xIsBfzUL32rx9pjG/_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/proxifyab/xIsBfzUL32rx9pjG/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/proxifyab/xIsBfzUL32rx9pjG/_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/proxifyab/xIsBfzUL32rx9pjG/_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/proxifyab/xIsBfzUL32rx9pjG/_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/proxifyab/xIsBfzUL32rx9pjG/_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/proxifyab/xIsBfzUL32rx9pjG/_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/proxifyab/xIsBfzUL32rx9pjG/_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/proxifyab/xIsBfzUL32rx9pjG/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Permutation Frameworks - Agentic Engineering\">\u003cmeta data-mint-head property=\"og:description\" content=\"A three-phase system for consistent, repeatable code generation at scale.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Agentic Engineering\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://agentic.proxify.io/patterns/permutation-frameworks\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://proxifyab.mintlify.app/_mintlify/api/og/v2?division=Operations\u0026amp;title=Permutation+Frameworks\u0026amp;description=A+three-phase+system+for+consistent%2C+repeatable+code+generation+at+scale.\u0026amp;theme=e62f8dbc91a9768edc13aef8\u0026amp;signature=cbd69e6d98e16228525cfb9867220ea42d609907e26238362ed73976f1626cf1\">\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=\"Permutation Frameworks - Agentic Engineering\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"A three-phase system for consistent, repeatable code generation at scale.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://proxifyab.mintlify.app/_mintlify/api/og/v2?division=Operations\u0026amp;title=Permutation+Frameworks\u0026amp;description=A+three-phase+system+for+consistent%2C+repeatable+code+generation+at+scale.\u0026amp;theme=e62f8dbc91a9768edc13aef8\u0026amp;signature=cbd69e6d98e16228525cfb9867220ea42d609907e26238362ed73976f1626cf1\">\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/proxifyab/xIsBfzUL32rx9pjG/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Agentic Engineering\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#5258FB\">\u003clink data-mint-head rel=\"canonical\" href=\"https://agentic.proxify.io/patterns/permutation-frameworks\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/patterns/permutation-frameworks.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://agentic.proxify.io/#organization\",\"name\":\"Agentic Engineering\",\"url\":\"https://agentic.proxify.io\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/proxifyab/N6NscdVBMIpMsn4J/logo/logo-proxify-dark.svg?fit=max\u0026auto=format\u0026n=N6NscdVBMIpMsn4J\u0026q=85\u0026s=fc616d0a8dfa55d2130f6385bc70aa24\"}},{\"@type\":\"WebSite\",\"@id\":\"https://agentic.proxify.io#website\",\"name\":\"Agentic Engineering\",\"url\":\"https://agentic.proxify.io\",\"publisher\":{\"@id\":\"https://agentic.proxify.io/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://agentic.proxify.io/patterns/permutation-frameworks#webpage\",\"url\":\"https://agentic.proxify.io/patterns/permutation-frameworks\",\"name\":\"Permutation Frameworks\",\"description\":\"A three-phase system for consistent, repeatable code generation at scale.\",\"dateModified\":\"2026-03-25T16:44:46.175Z\",\"isPartOf\":{\"@id\":\"https://agentic.proxify.io#website\"},\"breadcrumb\":{\"@id\":\"https://agentic.proxify.io/patterns/permutation-frameworks#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://agentic.proxify.io/patterns/permutation-frameworks#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Agentic Engineering\",\"item\":\"https://agentic.proxify.io\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Permutation Frameworks\",\"item\":\"https://agentic.proxify.io/patterns/permutation-frameworks\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://agentic.proxify.io/patterns/permutation-frameworks#article\",\"headline\":\"Permutation Frameworks\",\"name\":\"Permutation Frameworks\",\"description\":\"A three-phase system for consistent, repeatable code generation at scale.\",\"url\":\"https://agentic.proxify.io/patterns/permutation-frameworks\",\"mainEntityOfPage\":{\"@id\":\"https://agentic.proxify.io/patterns/permutation-frameworks#webpage\"},\"dateModified\":\"2026-03-25T16:44:46.175Z\",\"publisher\":{\"@id\":\"https://agentic.proxify.io/#organization\"},\"isPartOf\":{\"@id\":\"https://agentic.proxify.io#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Agentic Engineering\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Agentic Engineering","nav":{"global":null,"tabs":[{"tab":"Quickstart","pages":[{"title":"Quickstart","href":""}]},{"tab":"Playbook","groups":[{"group":"Daily Workflow","pages":[{"title":"Workflow Patterns","href":"/patterns/workflow-patterns"},{"title":"Context Management","href":"/patterns/context-management"},{"title":"Session Management","href":"/patterns/session-management"},{"title":"Parallel Execution","href":"/patterns/parallel-execution"},{"title":"Prompting Craft","href":"/patterns/prompting-craft"}]},{"group":"Autonomous Work","pages":[{"title":"Autonomous Task Patterns","href":"/patterns/autonomous-tasks"},{"title":"The Self-Improving Loop","href":"/patterns/self-improving-loop"}]},{"group":"Multi-Agent","pages":[{"title":"Invocation Quality","href":"/patterns/invocation-quality"},{"title":"Subagent Patterns","href":"/patterns/subagent-patterns"},{"group":"Orchestration Patterns","pages":[{"title":"Orchestration Patterns","href":"/patterns/orchestration-patterns"},{"title":"Fan-Out / Fan-In","href":"/patterns/orchestration-patterns/fan-out-fan-in"},{"title":"Pipeline Chains","href":"/patterns/orchestration-patterns/pipeline-chains"},{"title":"Builder-Validator Pairs","href":"/patterns/orchestration-patterns/builder-validator"},{"title":"Supervisor / Team Lead","href":"/patterns/orchestration-patterns/supervisor"},{"title":"Contract Chains / Wave Execution","href":"/patterns/orchestration-patterns/contract-chains"}]},{"title":"Agent Teams","description":"When and how to use Agent Teams — the decision framework, delegate mode, and practical advice.","href":"/patterns/agent-teams"}]},{"group":"Operations","pages":[{"title":"Permutation Frameworks","href":"/patterns/permutation-frameworks"},{"title":"Permission Modes","description":"Five permission modes as workflow optimization — not just security settings.","href":"/patterns/permission-modes"},{"title":"Cost \u0026 Model Routing","href":"/patterns/cost-and-model-routing"}]}]},{"tab":"Dojo","pages":[{"title":"Dojo","href":"/dojo"}]},{"tab":"Explore","pages":[{"title":"Explore","href":"/explore"}]}]},"title":"Permutation Frameworks - Agentic Engineering","buildId":"dpl_cadrRc5H9XQiJQbDFN5mcYRs2PAj","deploymentId":"dpl_cadrRc5H9XQiJQbDFN5mcYRs2PAj","dynamics":[],"chunks":[]}