Understand how built-in frameworks translate standard text into actionable rules
Every built-in framework includes a Documentation tab that connects the original standard text to the specific rules you need to satisfy in Openlayer. This is the fastest way to answer: “what does Article X actually require us to do?”
Navigate to Governance > Frameworks, click a framework, and open the Documentation tab.The left panel shows a table of contents organized by chapter and article. Clicking any article reveals:
The original standard text on the right
The Project scope rules directly below it — the Openlayer rules that satisfy that article
For each rule, you can see its name, a short description, the percentage of projects currently passing it, and the assigned owners.This view lets you trace any compliance requirement back to a concrete action in Openlayer — and see at a glance how your projects are performing against it.
Custom frameworks don’t have a Documentation tab. They display the rules list
directly, without the standard text mapping.
Each rule in the documentation is either a platform rule or an evidence-based rule. See Platform rules and Evidence-based rules for details on how each type is completed.
Was this page helpful?
{"docsConfig":{"theme":"aspen","$schema":"https://mintlify.com/docs.json","name":"Openlayer","colors":{"primary":"#592FEA","light":"#7A58EE","dark":"#7A58EE"},"logo":{"light":"https://mintcdn.com/openlayer-44/oDCORJdUN9f9cW5l/logo/logo-docs-brand.svg?fit=max\u0026auto=format\u0026n=oDCORJdUN9f9cW5l\u0026q=85\u0026s=ba6c0b778d2eacb6a216f9fb8caa7132","dark":"https://mintcdn.com/openlayer-44/oDCORJdUN9f9cW5l/logo/logo-docs-brand-dark.svg?fit=max\u0026auto=format\u0026n=oDCORJdUN9f9cW5l\u0026q=85\u0026s=7b5e924f18a184a4444ec36e2a23b061","href":"https://openlayer.com"},"favicon":"https://mintcdn.com/openlayer-44/kSF2u3BEB6ygCIR0/favicon.svg?fit=max\u0026auto=format\u0026n=kSF2u3BEB6ygCIR0\u0026q=85\u0026s=956d0871161771d155ff4903add290e5","api":{"openapi":["api-reference/openapi.yaml"],"playground":{"display":"none"},"mdx":{"auth":{"method":"bearer"},"server":"https://api.openlayer.com/v1"}},"appearance":{"default":"system"},"background":{"color":{"light":"#FFFFFF","dark":"#000000"}},"navbar":{"links":[{"href":"https://discord.gg/t6wS2g6MMB","label":"Community"},{"href":"https://app.openlayer.com/?login=true","label":"Log in"}],"primary":{"type":"button","label":"Get started","href":"https://app.openlayer.com/"}},"footer":{"socials":{"discord":"https://discord.gg/t6wS2g6MMB","linkedin":"https://www.linkedin.com/company/openlayerco","twitter":"https://twitter.com/openlayerco"}},"fonts":{"family":"Inter"},"icons":{"library":"lucide"},"integrations":{"mixpanel":{"projectToken":"401ce9e4de4663c33009eb3d140d3945"}},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"openlayer-44","hasAudioNarration":false,"actualSubdomain":"openlayer-44","customDomains":["docs.openlayer.com"],"gitSource":{"type":"github","owner":"openlayer-ai","repo":"openlayer-docs","deployBranch":"main","contentDirectory":"","isPrivate":false,"mountPath":"","label":""},"feedback":{"thumbs":true,"agentFeedback":true},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6aec177ab4a9a5921893f321","clientVersion":"0.0.4087","searchFilterCounts":[{"language":"default","tag":"Documentation","count":197},{"language":"default","tag":"Tests","count":122},{"language":"default","tag":"Catalog","count":111},{"language":"default","tag":"Reference","count":91},{"language":"default","tag":"REST API","count":64},{"language":"default","tag":"Integrations","count":62},{"language":"default","tag":"Governance","count":35},{"language":"default","tag":"Observability","count":23},{"language":"default","tag":"CLI","count":19},{"language":"default","tag":"No-Code Platforms","count":18}]},"assistantConfig":{},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"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":"rbac-expansion","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":"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":"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":"editor-metadata","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},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"comment-mode","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"governance/framework-requirements","slug":"/governance/framework-requirements","pageMetadata":{"title":"How frameworks map to requirements","description":"Understand how built-in frameworks translate standard text into actionable rules","hidden":false,"href":"/governance/framework-requirements","hiddenSetByFrontmatter":true},"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: \"Understand how built-in frameworks translate standard text into actionable rules\"\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`,li:`li`,p:`p`,strong:`strong`,ul:`ul`,..._provideComponents(),...props.components},{Heading,Note,OptimizedImage}=_components;if(!Heading)_missingMdxReference(`Heading`,true);if(!Note)_missingMdxReference(`Note`,true);if(!OptimizedImage)_missingMdxReference(`OptimizedImage`,true);return _jsxs(_Fragment,{children:[_jsxs(_components.p,{children:[`Every built-in framework includes a `,_jsx(_components.strong,{children:`Documentation`}),` tab that connects the original standard text to the specific rules you need to satisfy in Openlayer. This is the fastest way to answer: “what does Article X actually require us to do?”`]}),`\n`,_jsx(Heading,{level:`2`,id:`navigating-the-documentation-tab`,children:`Navigating the Documentation tab`}),`\n`,_jsxs(_components.p,{children:[`Navigate to `,_jsx(_components.strong,{children:`Governance > Frameworks`}),`, click a framework, and open the `,_jsx(_components.strong,{children:`Documentation`}),` tab.`]}),`\n`,_jsx(_components.p,{children:`The left panel shows a table of contents organized by chapter and article. Clicking any article reveals:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`The `,_jsx(_components.strong,{children:`original standard text`}),` on the right`]}),`\n`,_jsxs(_components.li,{children:[`The `,_jsx(_components.strong,{children:`Project scope rules`}),` directly below it — the Openlayer rules that satisfy that article`]}),`\n`]}),`\n`,_jsx(_components.p,{children:`For each rule, you can see its name, a short description, the percentage of projects currently passing it, and the assigned owners.`}),`\n`,_jsx(OptimizedImage,{width:`700`,style:{borderRadius:`0.5rem`},src:`https://mintcdn.com/openlayer-44/hqy5ZRaiSZXnkZzZ/images/governance/framework_documentation.png?fit=max\u0026auto=format\u0026n=hqy5ZRaiSZXnkZzZ\u0026q=85\u0026s=139c6236da95b792d0a2dc24d9d85530`,alt:`Framework documentation tab showing standard text mapped to rules`,\"data-og-width\":`1800`,\"data-og-height\":`1013`,\"data-path\":`images/governance/framework_documentation.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/openlayer-44/hqy5ZRaiSZXnkZzZ/images/governance/framework_documentation.png?w=280\u0026fit=max\u0026auto=format\u0026n=hqy5ZRaiSZXnkZzZ\u0026q=85\u0026s=eab2aed53ecb2d6c3d915d3cb889359c 280w, https://mintcdn.com/openlayer-44/hqy5ZRaiSZXnkZzZ/images/governance/framework_documentation.png?w=560\u0026fit=max\u0026auto=format\u0026n=hqy5ZRaiSZXnkZzZ\u0026q=85\u0026s=2bdcc2d79637c367882503cf808319f1 560w, https://mintcdn.com/openlayer-44/hqy5ZRaiSZXnkZzZ/images/governance/framework_documentation.png?w=840\u0026fit=max\u0026auto=format\u0026n=hqy5ZRaiSZXnkZzZ\u0026q=85\u0026s=4d7c2219e696192b63c6f3db4a2405bd 840w, https://mintcdn.com/openlayer-44/hqy5ZRaiSZXnkZzZ/images/governance/framework_documentation.png?w=1100\u0026fit=max\u0026auto=format\u0026n=hqy5ZRaiSZXnkZzZ\u0026q=85\u0026s=cd4fa85a06efb3ee8e0bfc7e08e6d36b 1100w, https://mintcdn.com/openlayer-44/hqy5ZRaiSZXnkZzZ/images/governance/framework_documentation.png?w=1650\u0026fit=max\u0026auto=format\u0026n=hqy5ZRaiSZXnkZzZ\u0026q=85\u0026s=0f14fe596452a585003ae4e505cd78ec 1650w, https://mintcdn.com/openlayer-44/hqy5ZRaiSZXnkZzZ/images/governance/framework_documentation.png?w=2500\u0026fit=max\u0026auto=format\u0026n=hqy5ZRaiSZXnkZzZ\u0026q=85\u0026s=3be121ab13c8a81f3894250c85290695 2500w`}),`\n`,_jsx(_components.p,{children:`This view lets you trace any compliance requirement back to a concrete action in Openlayer — and see at a glance how your projects are performing against it.`}),`\n`,_jsx(Note,{children:_jsx(_components.p,{children:`Custom frameworks don’t have a Documentation tab. They display the rules list\ndirectly, without the standard text mapping.`})}),`\n`,_jsxs(_components.p,{children:[`Each rule in the documentation is either a platform rule or an evidence-based rule. See `,_jsx(_components.a,{href:`/governance/platform-rules`,children:`Platform rules`}),` and `,_jsx(_components.a,{href:`/governance/evidence-based-rules`,children:`Evidence-based rules`}),` for details on how each type is completed.`]})]})}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":"How frameworks map to requirements","description":"Understand how built-in frameworks translate standard text into actionable rules","hidden":false,"href":"/governance/framework-requirements","hiddenSetByFrontmatter":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Navigating the Documentation tab","slug":"navigating-the-documentation-tab","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":["/_mintlify/custom/openlayer-44/a85e4a0a43b4a6e9/.eslintrc.js"],"subdomain":"openlayer-44","siteName":"Openlayer","title":"How frameworks map to requirements - Openlayer","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-04-20T18:25:45.821Z","originalFileLocation":"governance/framework-requirements.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=\"Understand how built-in frameworks translate standard text into actionable rules\">\u003cmeta data-mint-head name=\"application-name\" content=\"Openlayer\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/openlayer-44/IrRZyBgLHpsjdPBT/_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/openlayer-44/IrRZyBgLHpsjdPBT/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/openlayer-44/IrRZyBgLHpsjdPBT/_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/openlayer-44/IrRZyBgLHpsjdPBT/_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/openlayer-44/IrRZyBgLHpsjdPBT/_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/openlayer-44/IrRZyBgLHpsjdPBT/_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/openlayer-44/IrRZyBgLHpsjdPBT/_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/openlayer-44/IrRZyBgLHpsjdPBT/_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/openlayer-44/IrRZyBgLHpsjdPBT/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"How frameworks map to requirements - Openlayer\">\u003cmeta data-mint-head property=\"og:description\" content=\"Understand how built-in frameworks translate standard text into actionable rules\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Openlayer\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.openlayer.com/governance/framework-requirements\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://openlayer-44.mintlify.site/_mintlify/api/og/v2?division=Understand+requirements\u0026amp;title=How+frameworks+map+to+requirements\u0026amp;description=Understand+how+built-in+frameworks+translate+standard+text+into+actionable+rules\u0026amp;theme=079d59d752b48a504b621be5\u0026amp;signature=25137010e3c63fe303d6b499f19a85b258a5c3a150ce17c54e6fb5ba2600834e\">\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=\"How frameworks map to requirements - Openlayer\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Understand how built-in frameworks translate standard text into actionable rules\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://openlayer-44.mintlify.site/_mintlify/api/og/v2?division=Understand+requirements\u0026amp;title=How+frameworks+map+to+requirements\u0026amp;description=Understand+how+built-in+frameworks+translate+standard+text+into+actionable+rules\u0026amp;theme=079d59d752b48a504b621be5\u0026amp;signature=25137010e3c63fe303d6b499f19a85b258a5c3a150ce17c54e6fb5ba2600834e\">\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/openlayer-44/IrRZyBgLHpsjdPBT/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Openlayer\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#592FEA\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.openlayer.com/governance/framework-requirements\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/governance/framework-requirements.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.openlayer.com/#organization\",\"name\":\"Openlayer\",\"url\":\"https://docs.openlayer.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/openlayer-44/oDCORJdUN9f9cW5l/logo/logo-docs-brand.svg?fit=max\u0026auto=format\u0026n=oDCORJdUN9f9cW5l\u0026q=85\u0026s=ba6c0b778d2eacb6a216f9fb8caa7132\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.openlayer.com#website\",\"name\":\"Openlayer\",\"url\":\"https://docs.openlayer.com\",\"publisher\":{\"@id\":\"https://docs.openlayer.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.openlayer.com/governance/framework-requirements#webpage\",\"url\":\"https://docs.openlayer.com/governance/framework-requirements\",\"name\":\"How frameworks map to requirements\",\"description\":\"Understand how built-in frameworks translate standard text into actionable rules\",\"dateModified\":\"2026-04-20T18:25:45.821Z\",\"isPartOf\":{\"@id\":\"https://docs.openlayer.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.openlayer.com/governance/framework-requirements#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.openlayer.com/governance/framework-requirements#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Governance\",\"item\":\"https://docs.openlayer.com/governance/overview\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"How frameworks map to requirements\",\"item\":\"https://docs.openlayer.com/governance/framework-requirements\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.openlayer.com/governance/framework-requirements#article\",\"headline\":\"How frameworks map to requirements\",\"name\":\"How frameworks map to requirements\",\"description\":\"Understand how built-in frameworks translate standard text into actionable rules\",\"url\":\"https://docs.openlayer.com/governance/framework-requirements\",\"mainEntityOfPage\":{\"@id\":\"https://docs.openlayer.com/governance/framework-requirements#webpage\"},\"dateModified\":\"2026-04-20T18:25:45.821Z\",\"publisher\":{\"@id\":\"https://docs.openlayer.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.openlayer.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Openlayer\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Openlayer","nav":{"global":null,"tabs":[{"tab":"Documentation","groups":[{"group":"Get started","pages":[{"title":"Introduction","mode":"wide","icon":"album","href":"/introduction"}]},{"group":"Workspace setup","pages":[{"title":"Workspace dashboard","icon":"layout-dashboard","href":"/workspace-and-projects/workspace-dashboard"},{"group":"Projects","icon":"folder","pages":[{"title":"Create a project","hidden":false,"href":"/workspace-and-projects/creating-and-loading-projects"},{"title":"Project dashboards","href":"/workspace-and-projects/project-dashboards"}]},{"title":"Create an API key","icon":"key-round","href":"/workspace-and-projects/find-your-api-key"},{"title":"Plans and usage","icon":"gauge","href":"/workspace-and-projects/plans-and-usage"}]},{"group":"Governance","pages":[{"title":"Overview","icon":"landmark","hidden":false,"href":"/governance/overview"},{"group":"Set up a framework","icon":"rocket","pages":[{"title":"Activate a built-in framework","hidden":false,"href":"/governance/activate-framework"},{"title":"Build a custom framework","description":"Learn how to create a custom governance framework from scratch","hidden":false,"href":"/governance/build-custom-framework"}]},{"group":"Understand requirements","icon":"book-open-check","pages":[{"title":"How frameworks map to requirements","hidden":false,"href":"/governance/framework-requirements"},{"title":"Platform rules","description":"Learn how platform rules work and how they're satisfied through Openlayer usage","hidden":false,"href":"/governance/platform-rules"},{"title":"Evidence-based rules","hidden":false,"href":"/governance/evidence-based-rules"}]},{"group":"Track compliance","icon":"chart-bar","pages":[{"title":"Track compliance across your workspace","hidden":false,"href":"/governance/workspace-compliance"},{"title":"Track compliance within a project","hidden":false,"href":"/governance/project-compliance"},{"title":"Use the governance API","href":"/governance/api-access"}]},{"title":"Define intake and risk forms","icon":"clipboard-list","href":"/governance/intake-and-risk-forms"},{"title":"Project lifecycle","icon":"refresh-cw","href":"/governance/project-lifecycle"}]},{"group":"Observability","pages":[{"title":"Overview","icon":"telescope","href":"/monitoring/overview"},{"group":"Integrate","icon":"user-cog","pages":[{"title":"Instrument your code","hidden":false,"href":"/monitoring/instrument"},{"title":"Other integration paths","href":"/monitoring/alternative-integrations"}]},{"group":"Enrich traces","icon":"grid-2x2-plus","pages":[{"title":"Add metadata to traces","href":"/monitoring/metadata"},{"title":"Custom columns","href":"/monitoring/custom-columns"},{"title":"Trace multimodal data","href":"/monitoring/multimodal"},{"title":"Track users and sessions","href":"/monitoring/sessions-and-users"},{"title":"Log context for RAG systems","href":"/monitoring/context"},{"title":"Redact PII","href":"/monitoring/pii-redaction"},{"title":"Log question for RAG systems","href":"/monitoring/question"},{"title":"Update existing traces","href":"/monitoring/updating-data"}]},{"group":"Beyond traces","icon":"binoculars","pages":[{"title":"Publish traditional ML predictions","href":"/monitoring/publishing-tabular-predictions"},{"title":"Upload a reference dataset","href":"/monitoring/uploading-reference-dataset"}]},{"group":"Concepts","icon":"book-open","pages":[{"title":"Evaluation and delay windows","href":"/monitoring/evaluation-and-delay-windows"},{"title":"LLM cost estimation","href":"/monitoring/cost-estimation"}]},{"group":"Guardrails","icon":"shield-alert","pages":[{"title":"Overview","hidden":false,"href":"/guardrails/overview"}]},{"title":"AI-generated summaries","icon":"sparkles","href":"/monitoring/ai-summaries"},{"title":"Export data","icon":"download","href":"/monitoring/export-data"}]},{"group":"Offline testing","pages":[{"title":"Overview","icon":"git-commit-vertical","href":"/development/overview"},{"group":"Integrate","icon":"user-cog","pages":[{"title":"Push and poll using the Openlayer CLI","href":"/guides/cli-push"}]},{"group":"Configure","icon":"braces","pages":[{"title":"openlayer.json","href":"/development/openlayer-json"},{"title":"tests.json","href":"/development/tests-json"},{"title":"Configuring output generation","href":"/development/configuring-output-generation"}]},{"group":"Custom CI/CD setups","icon":"git-compare","pages":[{"title":"GitHub Actions with Openlayer","href":"/guides/gh-actions"}]}]},{"group":"Tests","pages":[{"title":"Overview","hidden":false,"icon":"list-checks","href":"/tests/overview"},{"title":"Browse tests","mode":"frame","icon":"scan-search","href":"/tests/browse"},{"group":"Catalog","icon":"notebook","pages":[{"title":"Accuracy","hidden":false,"href":"/tests/catalog/accuracy"},{"title":"Aggregate metrics","hidden":false,"href":"/tests/catalog/aggregate-metrics"},{"title":"Anomalous column count","hidden":false,"href":"/tests/catalog/anomalous-column-count"},{"title":"Answer correctness","hidden":false,"href":"/tests/catalog/answer-correctness"},{"title":"Answer relevancy","hidden":false,"href":"/tests/catalog/answer-relevancy"},{"title":"Bias","hidden":false,"href":"/tests/catalog/bias"},{"title":"BLEU score","hidden":false,"href":"/tests/catalog/bleu-score"},{"title":"Character length","hidden":false,"href":"/tests/catalog/character-length"},{"title":"Class imbalance ratio","hidden":false,"href":"/tests/catalog/class-imbalance-ratio"},{"title":"Coherence","hidden":false,"href":"/tests/catalog/coherence"},{"title":"Column average","hidden":false,"href":"/tests/catalog/column-average"},{"title":"Column drift","hidden":false,"href":"/tests/catalog/column-drift"},{"title":"Column freshness","href":"/tests/catalog/column-freshness"},{"title":"Column statistics","hidden":false,"href":"/tests/catalog/column-statistic"},{"title":"Column values match","hidden":false,"href":"/tests/catalog/column-values-match"},{"title":"Conciseness","hidden":false,"href":"/tests/catalog/conciseness"},{"title":"Conflicting labels","hidden":false,"href":"/tests/catalog/conflicting-label-count"},{"title":"Contains PII","hidden":false,"href":"/tests/catalog/contains-p-i-i"},{"title":"Valid URLs","hidden":false,"href":"/tests/catalog/contains-valid-url"},{"title":"Context recall","hidden":false,"href":"/tests/catalog/context-recall"},{"title":"Context relevancy","hidden":false,"href":"/tests/catalog/context-relevancy"},{"title":"Context utilization","hidden":false,"href":"/tests/catalog/context-utilization"},{"title":"Correctness","hidden":false,"href":"/tests/catalog/correctness"},{"title":"Correlated features","hidden":false,"href":"/tests/catalog/correlated-feature-count"},{"title":"Data type validation","hidden":false,"href":"/tests/catalog/dtype-validation"},{"title":"Duplicate rows","hidden":false,"href":"/tests/catalog/duplicate-count"},{"title":"Edit distance","hidden":false,"href":"/tests/catalog/edit-distance"},{"title":"Empty features","hidden":false,"href":"/tests/catalog/empty-feature"},{"title":"Empty feature count","hidden":false,"href":"/tests/catalog/empty-feature-count"},{"title":"Exact match","hidden":false,"href":"/tests/catalog/exact-match"},{"title":"Column contains string","hidden":false,"href":"/tests/catalog/expect-column-a-to-be-in-column-b"},{"title":"F1 score","hidden":false,"href":"/tests/catalog/f1"},{"title":"Faithfulness","hidden":false,"href":"/tests/catalog/faithfulness"},{"title":"False positive rate","hidden":false,"href":"/tests/catalog/false-positive-rate"},{"title":"Feature drift","hidden":false,"href":"/tests/catalog/feature-drift-count"},{"title":"Feature values","hidden":false,"href":"/tests/catalog/feature-values"},{"title":"Features missing values","hidden":false,"href":"/tests/catalog/features-missing-values"},{"title":"Freshness","href":"/tests/catalog/freshness"},{"title":"Geometric mean","hidden":false,"href":"/tests/catalog/geometric-mean"},{"title":"Great expectations","hidden":false,"href":"/tests/catalog/great-expectations"},{"title":"Groundedness","hidden":false,"href":"/tests/catalog/groundedness"},{"title":"Group by column statistic","hidden":false,"href":"/tests/catalog/group-by-column-statistic"},{"title":"Group metric parity","href":"/tests/catalog/group-metric-parity"},{"title":"Group outcome disparity","href":"/tests/catalog/group-outcome-disparity"},{"title":"Group performance parity","href":"/tests/catalog/group-performance-parity"},{"title":"Group score disparity","href":"/tests/catalog/group-score-disparity"},{"title":"Hallucination","hidden":false,"href":"/tests/catalog/hallucination"},{"title":"Harmfulness","hidden":false,"href":"/tests/catalog/harmfulness"},{"title":"Has prompt injection","hidden":false,"href":"/tests/catalog/has-prompt-injection-count"},{"title":"Ill-formed rows","hidden":false,"href":"/tests/catalog/ill-formed-count"},{"title":"Is code","hidden":false,"href":"/tests/catalog/is-code"},{"title":"Is JSON","hidden":false,"href":"/tests/catalog/is-json"},{"title":"Jev-as-a-judge","href":"/tests/catalog/jev-as-a-judge-threshold"},{"title":"JSON score","hidden":false,"href":"/tests/catalog/json-score"},{"title":"LLM-as-a-judge","hidden":false,"href":"/tests/catalog/l-l-m-rubric-threshold"},{"title":"Label/target drift","hidden":false,"href":"/tests/catalog/label-drift"},{"title":"Log loss","hidden":false,"href":"/tests/catalog/log-loss"},{"title":"Mean absolute error (MAE)","hidden":false,"href":"/tests/catalog/mae"},{"title":"Maliciousness","hidden":false,"href":"/tests/catalog/maliciousness"},{"title":"Mean absolute percentage error (MAPE)","hidden":false,"href":"/tests/catalog/mape"},{"title":"Max cost","hidden":false,"href":"/tests/catalog/max-cost"},{"title":"Max latency","hidden":false,"href":"/tests/catalog/max-latency"},{"title":"Max tokens","hidden":false,"href":"/tests/catalog/max-tokens"},{"title":"Mean cost","hidden":false,"href":"/tests/catalog/mean-cost"},{"title":"Mean latency","hidden":false,"href":"/tests/catalog/mean-latency"},{"title":"Mean tokens","hidden":false,"href":"/tests/catalog/mean-tokens"},{"title":"Median latency","hidden":false,"href":"/tests/catalog/median-latency"},{"title":"Min latency","hidden":false,"href":"/tests/catalog/min-latency"},{"title":"Mean squared error (MSE)","hidden":false,"href":"/tests/catalog/mse"},{"title":"New categories","hidden":false,"href":"/tests/catalog/new-category-count"},{"title":"New labels","hidden":false,"href":"/tests/catalog/new-label-count"},{"title":"Null rows","hidden":false,"href":"/tests/catalog/null-count"},{"title":"90th latency percentile","hidden":false,"href":"/tests/catalog/p90-latency"},{"title":"95th latency percentile","hidden":false,"href":"/tests/catalog/p95-latency"},{"title":"99th latency percentile","hidden":false,"href":"/tests/catalog/p99-latency"},{"title":"Predictive power score (PPS)","hidden":false,"href":"/tests/catalog/pp-score-value-validation"},{"title":"Precision","hidden":false,"href":"/tests/catalog/precision"},{"title":"Quasi-constant features","hidden":false,"href":"/tests/catalog/quasi-constant-feature"},{"title":"Quasi-constant feature count","hidden":false,"href":"/tests/catalog/quasi-constant-feature-count"},{"title":"Quasi-exact match","hidden":false,"href":"/tests/catalog/quasi-exact-match"},{"title":"R-squared","hidden":false,"href":"/tests/catalog/r2"},{"title":"Recall","hidden":false,"href":"/tests/catalog/recall"},{"title":"Recommends competitor","hidden":false,"href":"/tests/catalog/recommends-competitor"},{"title":"Root mean squared error (RMSE)","hidden":false,"href":"/tests/catalog/rmse"},{"title":"ROC AUC","hidden":false,"href":"/tests/catalog/roc-auc"},{"title":"Number of rows","hidden":false,"href":"/tests/catalog/row-count"},{"title":"Semantic similarity","hidden":false,"href":"/tests/catalog/semantic-similarity"},{"title":"Sentence length","hidden":false,"href":"/tests/catalog/sentence-length"},{"title":"Session coherence","hidden":false,"href":"/tests/catalog/session-coherence"},{"title":"Session context retention","hidden":false,"href":"/tests/catalog/session-context-retention"},{"title":"Session conversation completeness","hidden":false,"href":"/tests/catalog/session-conversation-completeness"},{"title":"Session cost","hidden":false,"href":"/tests/catalog/session-cost"},{"title":"Session duration","hidden":false,"href":"/tests/catalog/session-duration"},{"title":"Session goal achievement","hidden":false,"href":"/tests/catalog/session-goal-achievement"},{"title":"Session guideline adherence","hidden":false,"href":"/tests/catalog/session-guideline-adherence"},{"title":"Session latency","hidden":false,"href":"/tests/catalog/session-latency"},{"title":"Session record count","hidden":false,"href":"/tests/catalog/session-record-count"},{"title":"Session role adherence","hidden":false,"href":"/tests/catalog/session-role-adherence"},{"title":"Session task progression","hidden":false,"href":"/tests/catalog/session-task-progression"},{"title":"Session token count","hidden":false,"href":"/tests/catalog/session-token-count"},{"title":"Session turn relevancy","hidden":false,"href":"/tests/catalog/session-turn-relevancy"},{"title":"Size ratio","hidden":false,"href":"/tests/catalog/size-ratio"},{"title":"Special characters ratio","hidden":false,"href":"/tests/catalog/special-characters-ratio"},{"title":"SQL query","hidden":false,"href":"/tests/catalog/sql-query"},{"title":"SQL query return rows","hidden":false,"href":"/tests/catalog/sql-query-return-rows"},{"title":"String validation","hidden":false,"href":"/tests/catalog/string-validation"},{"title":"Total cost","hidden":false,"href":"/tests/catalog/total-cost"},{"title":"Total tokens","hidden":false,"href":"/tests/catalog/total-tokens"},{"title":"Toxicity","hidden":false,"href":"/tests/catalog/toxicity"},{"title":"Training-validation leakage","hidden":false,"href":"/tests/catalog/train-val-leakage-count"},{"title":"Unauthorized tool calls","hidden":false,"href":"/tests/catalog/unauthorized-tool-calls"}]},{"title":"Tests configuration","hidden":false,"icon":"settings-2","href":"/tests/test-configuration"},{"title":"Manage tests","icon":"list-todo","href":"/tests/manage-tests"},{"title":"Semantic search filters","icon":"text-search","href":"/tests/semantic-search-filters"},{"title":"Custom metrics","icon":"pencil-line","href":"/tests/custom-metrics"}]},{"group":"Gateway","pages":[{"title":"Overview","icon":"route","href":"/gateway/overview"},{"group":"Set up \u0026 connect","icon":"plug","pages":[{"title":"Set up the gateway","href":"/gateway/set-up-the-gateway"},{"title":"Make your first request","href":"/gateway/make-your-first-request"}]},{"group":"Manage API keys","icon":"key-round","pages":[{"title":"Create API keys","href":"/gateway/api-keys"},{"title":"Assign groups","href":"/gateway/groups"},{"title":"Send invites","href":"/gateway/invites"}]},{"group":"Budgets \u0026 usage","icon":"wallet","pages":[{"title":"Set usage limits","href":"/gateway/budgets-and-limits"},{"title":"Track usage","href":"/gateway/usage-and-cost"}]},{"title":"Guardrails","icon":"shield-alert","href":"/gateway/guardrails"},{"title":"Model access","icon":"boxes","href":"/gateway/model-access"},{"title":"Observability","icon":"activity","href":"/gateway/observability"},{"title":"Errors","icon":"circle-alert","href":"/gateway/errors"},{"group":"Routing","icon":"waypoints","pages":[{"title":"Connect providers","href":"/gateway/connect-providers"},{"title":"Route requests","href":"/gateway/route-requests"},{"title":"Use any model from any SDK","href":"/gateway/use-any-model"}]}]},{"group":"Data quality monitoring","pages":[{"title":"Overview","icon":"database-zap","href":"/data-quality-monitoring/overview"},{"group":"Integrate","icon":"user-cog","pages":[{"title":"Connect a data source","hidden":false,"href":"/data-quality-monitoring/connect-data-source"}]},{"group":"Concepts","icon":"book-open","pages":[{"title":"Anomaly detection","href":"/data-quality-monitoring/anomaly-detection"}]}]},{"group":"Administration","pages":[{"title":"Security","icon":"lock","href":"/security"},{"title":"Data regions","icon":"globe","href":"/security/data-residency"},{"title":"Roles and permissions","icon":"shield-check","href":"/security/roles-and-permissions"},{"title":"SAML SSO Authentication","icon":"scan-face","href":"/security/saml-sso"},{"title":"Multi-factor Authentication","icon":"shield-check","href":"/security/multi-factor-authentication"},{"title":"Access groups","icon":"users","href":"/security/access-groups"},{"title":"Environment Variables","icon":"hexagon","href":"/security/environment-variables"},{"title":"Data retention","icon":"clock","href":"/workspace-and-projects/data-retention"}]},{"group":"Notifications","pages":[{"title":"Overview","icon":"bell","href":"/notifications/overview"},{"title":"In-app notifications","icon":"inbox","href":"/notifications/in-app"},{"title":"Email notifications","icon":"mail","href":"/notifications/email"},{"title":"Slack notifications","icon":"message-square","href":"/notifications/slack"},{"group":"Webhooks","icon":"webhook","pages":[{"title":"Overview","href":"/security/webhooks/overview"},{"title":"Manage webhooks","href":"/security/webhooks/manage-webhooks"},{"title":"Events and payloads","href":"/security/webhooks/events"},{"title":"Verify signatures","href":"/security/webhooks/verify-signatures"}]}]},{"group":"Other resources","pages":[{"title":"Glossary","icon":"case-sensitive","href":"/glossary"},{"title":"Openlayer MCP","icon":"audio-waveform","href":"/openlayer-mcp"},{"title":"Openlayer Agent Skills","icon":"wand-sparkles","href":"/openlayer-skills"},{"group":"Code examples","icon":"code","pages":[{"title":"Templates","href":"/examples/templates"},{"title":"Monitoring","href":"/examples/monitoring"}]}]}]},{"tab":"Integrations","pages":[{"title":"Integrations","href":"/integrations/overview"}]},{"tab":"Reference","pages":[{"title":"Reference","href":"/api-reference/introduction"}]}]},"basePath":"","title":"How frameworks map to requirements - Openlayer","buildId":"dpl_FWZhTb2vab28gFGFH4ojka6qEznQ","deploymentId":"dpl_FWZhTb2vab28gFGFH4ojka6qEznQ","dynamics":["a74be98ba7"],"chunks":["zoom-image-lightbox-CE4cYsJE.js","lightbox-handle-r17bVUz3.js"]}