Skip to content

Essays · Enterprise field guide

Yes, you should vibe code in the enterprise.

I want people across the organisation to have access to approved AI tools, somewhere safe to experiment and time to use them. Encourage them to build things that solve problems in their own work.

By Mikko Laakkonen · Taiga co-founder and CEO

Published

Fig. 01 · The purchasing app

One application, growing responsibilities

  1. Try an idea

    Sample spreadsheet

  2. Connect real data

    Supplier records

  3. Allow business actions

    Purchase orders

Ownership and support follow the application
The interface can stay almost the same while the application gains access to real data and permission to place orders.

The people doing the work usually have a pretty good idea of what's wrong with it. If someone thinks they can fix a slow approval process or automate the spreadsheet they keep rebuilding, let them have a go. Let them get the first version wrong, show it to colleagues and try again. A small application with synthetic or otherwise approved data can make the problem much easier to discuss than another requirements meeting.

People need to know which tools they can use, what data they can put into them and where to get help when an idea starts working. The company should make that easy to find.

A purchasing tool might start with a sample spreadsheet. Then its users want live supplier data. Next they want it to update purchase orders. Eventually another team starts depending on it, and the person who built it moves to a different role.

It might still look like the same little app. But now it can place orders, and someone else has to keep it running.

Before you put confidential data into it, give it an API key that can do damage, or let a business process depend on it, you need to know what it can do and who's responsible for it.

That goes for the coding agent too. If it can read your repository, run commands, retrieve secrets and reach the production network, it already has access that needs controlling. You don't get to leave that discussion until deployment.

I've put together 300 checks for the application lifecycle, plus 36 for EU regulatory readiness through the end of 2027. Yes, it's a long list. I want engineering, security, platform, operations and business owners to be able to work through the same questions without each team having to start its own list.

A lot of this is work the enterprise can do once and make available to everyone. Approved hosting, identity, secrets management, deployment pipelines, monitoring and maintenance should already have a home. Asking every employee with a useful idea to assemble all of that themselves is a fairly good way to make sure their idea goes nowhere.

The application still needs its own decisions about business rules, data and permissions. Your identity provider can't decide who should be allowed to approve a supplier payment. Having a backup service doesn't tell you whether the restored purchasing app produces the right orders.

Using this checklist

For each check, record whether it applies, who owns it, what evidence you have, its status and when you'll review it again. Evidence can be an approved decision, configuration, test result or operating record. The leads below are suggestions; put actual names against the work.

Work out which checks apply before granting access to confidential data or permissions to change things. Agree what has to be verified before data processing, before write access and before production use, and what you'll keep checking afterwards. Read-only access can still expose an entire customer database.

If the application doesn't bill anyone, the billing section won't apply. Runtime AI checks matter when there's AI in the running application. Whether you need a second region depends on how the business needs to recover. Record any exception with a reason, an owner, an expiry date and suitable safeguards. An internal risk acceptance doesn't let you waive a legal or contractual obligation.

The numbered ranges should help you find the part you own:

In this essay
Download the worksheet

CSV · 336 checks · owner, evidence and review fields

Read or save the full article

Checks 1–10

Ownership and purpose

Lead: the business owner. Evidence: an approved application record.

  1. 1

    A named business owner is responsible for the application's purpose and continued use.

  2. 2

    A named technical owner is responsible for maintenance, fixes and technical decisions.

  3. 3

    Both owners have deputies and cover for when they're away or move on.

  4. 4

    Write down who the application is for, what it's for and which uses are allowed.

  5. 5

    Spell out what the application mustn't be used for and where its scope ends.

  6. 6

    The process owner approves the workflow and its effects on other teams.

  7. 7

    Assess the impact of incorrect results, data exposure and service interruption separately.

  8. 8

    Business criticality determines approval authority, monitoring and support coverage.

  9. 9

    Maintenance, licences, infrastructure and future changes have a budget, with someone responsible for it.

  10. 10

    A named owner approves the purpose and release policy; you can trace approval of each deployed version through that policy.

Checks 11–20

An approved place to run

Lead: the platform team. Evidence: the environment identity and approved deployment route.

  1. 11

    The application runs on an organisation-approved platform, such as its own datacentre or an approved Azure environment.

  2. 12

    The approval names the subscription, account, tenant or cluster, including allowed regions and services.

  3. 13

    Cloud accounts, hosting arrangements and service contracts are under company control.

  4. 14

    The environment follows the organisation's security configuration, network design and resource-creation policies.

  5. 15

    Public endpoints and internet exposure receive the required approval.

  6. 16

    Restrict network access to databases, administration interfaces and internal services.

  7. 17

    Control outbound connections, including those to AI providers and external storage.

  8. 18

    Development, test and production have separate data, identities and permissions.

  9. 19

    Make clear what the hosting provider handles and what your own teams handle for each component.

  10. 20

    Prevent deployment to personal hosting accounts or unapproved fallback environments, or detect it and act on it.

Checks 21–30

Application inventory and asset management

Lead: IT service management and the technical owner. Evidence: a current asset record linked to actual resources.

  1. 21

    The application is registered in the organisation's application inventory, asset system or configuration management database.

  2. 22

    The record includes owners, contacts, criticality, data classification and lifecycle status.

  3. 23

    Link source repositories, build pipelines and artefact repositories to the same application record.

  4. 24

    Servers, containers, functions, databases, storage and scheduled jobs are inventoried.

  5. 25

    Record domains, DNS, certificates and who renews them; registrar accounts and recovery channels belong to the company.

  6. 26

    The company controls external accounts, service identities, integrations and keys; store references in the inventory, not the secrets themselves.

  7. 27

    Dependency records show which business processes stop working when a connected service goes down.

  8. 28

    Resource identifiers connect costs, logs and alerts to the correct application.

  9. 29

    Check the inventory against what's actually deployed, including manually created or forgotten environments.

  10. 30

    Update the inventory when owners, deployed versions or dependencies change.

Checks 31–40

Data and where it goes

Lead: the data owner and application team. Evidence: a data inventory and flow diagram.

  1. 31

    Each data category has an owner and classification, including personal information and trade secrets.

  2. 32

    Collect and retrieve only the data the application needs for its purpose.

  3. 33

    Document where data goes, from source systems through the application to external services.

  4. 34

    Those flows include logs, caches, search indexes, analytics, backups and support tools.

  5. 35

    Know where data is stored and processed, including subcontractors and support access.

  6. 36

    Moving data to another region or provider follows the required approval process.

  7. 37

    Tests and demonstrations use suitable synthetic data or data whose anonymisation has been assessed.

  8. 38

    Any copy of production data used for testing has a justified purpose, suitable safeguards and approval.

  9. 39

    Reports, downloads and temporary files keep the classification their contents require.

  10. 40

    The data owner has approved confidential-data use in this application and this environment.

Checks 41–50

Identities, secrets and administrative access

Lead: identity, platform and application teams. Evidence: a permission inventory and revocation tests.

  1. 41

    Unattended integrations use dedicated service identities; access on behalf of a user keeps that user's identity and authorised scope.

  2. 42

    Use short-lived workload identity in place of long-lived keys where it's supported.

  3. 43

    Keep required secrets in an approved secrets-management service.

  4. 44

    Secrets stay out of source code, browser bundles, URLs, logs and AI conversations.

  5. 45

    Every identity receives only the actions and data access required for its task.

  6. 46

    Development, deployment, administration and runtime identities are separated.

  7. 47

    Administrators use individual accounts and strong authentication; elevated access is time-limited where appropriate.

  8. 48

    Track who owns each key, when it expires and how it's rotated. Exercise emergency revocation.

  9. 49

    When an employee leaves, remove access through active sessions, development tools and administrative connections.

  10. 50

    Emergency access has a controlled procedure, an audit trail and a subsequent review.

Checks 51–60

Permission to change, delete, send or spend

Lead: the business owner and connected-system owners. Evidence: authority limits and tests of forbidden actions.

  1. 51

    Each integration states whether it can read, modify, delete, send, publish or spend money.

  2. 52

    Integrations that only retrieve data get read access without unnecessary write permissions.

  3. 53

    Write access is restricted to the required objects, records, customers or organisational units.

  4. 54

    The receiving system enforces permissions when the caller is an AI agent as well as a human.

  5. 55

    Large, irreversible or otherwise consequential actions need human approval suited to their risk.

  6. 56

    The approval shows the target, proposed change and expected effect, and applies only to that specific action.

  7. 57

    Payments, bulk changes, messages and resource creation have enforceable quantity or value limits.

  8. 58

    Destructive operations support previews or dry runs where technically possible.

  9. 59

    An administrator can stop automation and revoke its access even when the application isn't working properly.

  10. 60

    Have separate procedures for stopping queued work and correcting actions that have already happened.

Checks 61–70

AI tools used during development

Lead: the development-platform owner and security team. Evidence: approved tools, configurations and execution records.

  1. 61

    Coding agents, models, extensions and MCP servers are approved for organisational use.

  2. 62

    Check their terms, retention and possible training use before giving them confidential information.

  3. 63

    Give agents only the files, directories and network access they need for the task.

  4. 64

    Agent execution environments are isolated from production and unrelated projects.

  5. 65

    Treat documents, websites and dependencies that agents read as possible sources of malicious instructions.

  6. 66

    Code or the platform enforces tool permissions, even when a prompt asks otherwise.

  7. 67

    Agents can't grant themselves more privileges, approve their own exceptions or disable required checks.

  8. 68

    Changes to agent tools and instructions are versioned and reviewed.

  9. 69

    Execution records identify models, changes, checks and approvals without exposing secrets.

  10. 70

    Set retention and deletion rules for development conversations, temporary files and logs.

Checks 71–80

Documentation another person can use

Lead: the technical owner. Evidence: documentation tied to the release and a successful handover exercise.

  1. 71

    The specification explains what the application does, for whom and under which acceptance criteria.

  2. 72

    User journeys cover errors, exceptions and interrupted work too.

  3. 73

    Architecture documentation shows components, external dependencies and trust boundaries.

  4. 74

    The data model explains meaning, relationships, ownership and lifecycle.

  5. 75

    Keep the reasoning behind significant technical decisions, including the alternatives considered.

  6. 76

    The threat model and risk register reflect the actual implementation and are updated when it changes.

  7. 77

    APIs, events, configuration and differences between environments are documented.

  8. 78

    Another developer can run the application from the README without asking its author to explain the missing steps.

  9. 79

    Operating, maintenance, recovery and incident instructions are accessible when the application is down.

  10. 80

    Documentation has an owner, a review date and a link to the deployed version.

Checks 81–90

Authentication and the user lifecycle

Lead: the identity and application teams. Evidence: login, role-change and departure tests.

  1. 81

    Enterprise users authenticate through the approved identity provider and single sign-on.

  2. 82

    OIDC or SAML integrations meet the organisation's identity-provider requirements.

  3. 83

    Multi-factor authentication and applicable conditional-access policies cover administrators too.

  4. 84

    Provisioning, role changes and removal follow the user's lifecycle through SCIM or another controlled process.

  5. 85

    Test that removing a user removes their permissions and ends their sessions within the agreed time.

  6. 86

    Sessions have appropriate lifetimes, and administrators can terminate all sessions for a user.

  7. 87

    Any required local-password storage and recovery use an approved implementation.

  8. 88

    Recovery links expire, work once and resist abuse.

  9. 89

    Replacing a lost authentication factor doesn't create an easier way around authentication.

  10. 90

    Login throttling, lockout and identifier handling are tested with legitimate unusual inputs and hostile attempts.

Checks 91–100

Authorisation, isolation and privilege escalation

Lead: the process owner and application team. Evidence: a permission matrix and negative tests.

  1. 91

    Roles match actual responsibilities and define allowed actions precisely enough to enforce them.

  2. 92

    The server checks authorisation for every protected operation and data object.

  3. 93

    Changing /documents/15 to /documents/16, or calling the API directly, can't expose an unauthorised document.

  4. 94

    Tenant and organisational-unit isolation covers background jobs, searches, caches and exports.

  5. 95

    Missing permissions or failed permission checks result in a safe denial.

  6. 96

    Approvals, payments and access grants follow the required separation of duties.

  7. 97

    Support impersonation is restricted, time-limited and auditable.

  8. 98

    Guest and supplier access has a sponsor, limited scope and an expiry date.

  9. 99

    Owners review access on a schedule based on risk, and whenever responsibilities change.

  10. 100

    Identify inherited permissions and escalation paths through groups, role assumption, service identities and integrations; block unintended elevation and test that the blocks work.

Checks 101–110

Application security

Lead: the application and security teams. Evidence: security-test results and verified fixes.

  1. 101

    The server validates input types, bounds and allowed values, regardless of what the interface checks.

  2. 102

    Database access uses parameterised queries or equivalent safe interfaces.

  3. 103

    Displayed content uses context-appropriate encoding to prevent cross-site scripting.

  4. 104

    The session model's required cross-site request-forgery protection is implemented and tested.

  5. 105

    User-supplied URLs can't provide unauthorised access to internal networks or cloud metadata services.

  6. 106

    User input cannot become an uncontrolled shell command, filesystem path or executable template.

  7. 107

    CORS, cookies, security headers and browser policies match the application's access model.

  8. 108

    Remove debug endpoints, default credentials and unnecessary services from production.

  9. 109

    Security testing and required independent penetration testing cover the actual operating environment.

  10. 110

    Define which findings block release, fix them and retest before approving the affected use.

Checks 111–120

Files, storage and encryption

Lead: the platform and application teams. Evidence: storage configuration and file-access tests.

  1. 111

    Network traffic uses encryption appropriate to its classification, with working certificate and peer-authentication checks.

  2. 112

    Storage encryption covers databases, disks, objects and backups according to the approved classification.

  3. 113

    Encryption-key access, rotation and recovery dependencies are managed.

  4. 114

    Check actual file types and size limits on uploads, and run required malware checks.

  5. 115

    Uploaded content can't execute with the application's privileges.

  6. 116

    File access and sharing links enforce user and tenant permissions.

  7. 117

    Archives, unusual filenames and large inputs cannot bypass limits or exhaust storage.

  8. 118

    Temporary files and obsolete object versions expire under the retention policy.

  9. 119

    Public exposure and changes to storage-sharing configuration are detected.

  10. 120

    Assess how data left on workstations, browsers and mobile devices is protected.

Checks 121–130

Databases and migrations

Lead: the application team and database operator. Evidence: schema reviews and migration rehearsals.

  1. 121

    The data model is reviewed against business concepts before real information is stored.

  2. 122

    Keys, referential integrity, required fields and uniqueness constraints protect correctness.

  3. 123

    Schema changes are versioned and repeatable.

  4. 124

    Test recovery or repair procedures for migrations; rolling back code won't necessarily bring lost data back.

  5. 125

    Assess what happens when a migration holds locks for too long, rewrites data or gets interrupted.

  6. 126

    Old and new application versions coexist safely during deployment where required.

  7. 127

    Test indexes and query plans with realistic data volumes.

  8. 128

    Connection pools, timeouts and limits protect the database from overload.

  9. 129

    Concurrent updates and transactions avoid lost changes and partially completed business operations.

  10. 130

    Test the model against new tenants and foreseeable next use cases, and record its limits.

Checks 131–140

Business logic and data quality

Lead: the process owner and application team. Evidence: approved examples and boundary tests.

  1. 131

    Approval limits, delegations and exceptional cases are specified.

  2. 132

    One person with several accounts can't bypass a requirement for independent approvers.

  3. 133

    Monetary calculations use appropriate integer units or exact decimal representations.

  4. 134

    Rounding, currency conversion, negative values and zero follow the agreed rules.

  5. 135

    Timestamps, local time and daylight-saving changes work correctly for the use case.

  6. 136

    Names, identifiers, Unicode and missing values work without invalid assumptions about users.

  7. 137

    Imports handle encodings, separators, invalid rows and partial failures.

  8. 138

    Exports contain authorised data and appropriate protection against spreadsheet-formula injection.

  9. 139

    Pagination, search and sorting handle changing data without silently losing or duplicating records.

  10. 140

    Corrections and any soft deletion follow defined rules and leave the required history.

Checks 141–150

APIs and integrations

Lead: the integration owners. Evidence: interface contracts and dependency-failure tests.

  1. 141

    API contracts, versions and retirement dates are documented.

  2. 142

    Incoming webhooks have authenticity and freshness checks.

  3. 143

    Receiving the same event again can't unintentionally repeat the same business change.

  4. 144

    Operators can see outgoing webhook delivery, retries and failures.

  5. 145

    OAuth refresh, revocation and reauthorisation are tested.

  6. 146

    External schema changes, missing fields and invalid responses fail in ways the application can handle.

  7. 147

    Rate limits protect capacity and provide understandable responses to legitimate users.

  8. 148

    Customer API credentials can be scoped, issued, rotated and revoked through controlled processes.

  9. 149

    External integration partners have separate test environments and credentials where needed.

  10. 150

    Reconcile records across systems to catch silent transfer failures and inconsistencies.

Checks 151–160

Background jobs and automation

Lead: the application team and platform operator. Evidence: failure, retry and shutdown tests.

  1. 151

    Use a managed queue for slow tasks when the workload needs one.

  2. 152

    Jobs have bounded execution time, retries and backoff appropriate to the operation.

  3. 153

    A timeout doesn't trigger blind retries when the first attempt may already have changed data.

  4. 154

    Jobs that keep failing go to a review queue with an owner and a recovery procedure.

  5. 155

    Scaling the application or changing clocks can't accidentally multiply scheduled jobs.

  6. 156

    Duplicate events and repeated form submissions are handled on the server.

  7. 157

    Interrupted work resumes from a known state or follows a controlled recovery path.

  8. 158

    Monitor queue depth, the age of the oldest job and processing capacity.

  9. 159

    A dependency failure can't trigger an unbounded storm of requests to other systems.

  10. 160

    Replaying jobs and correcting failed batches preserve permissions and required event ordering.

Checks 161–170

Source code, SBOM and the software supply chain

Lead: the development-platform owner and application team. Evidence: an SBOM linked to each release artefact.

  1. 161

    Source code and its history reside in company-controlled version control.

  2. 162

    Changes pass the required reviews and checks, with traceable results.

  3. 163

    Check package names, publishers, sources and installation scripts to a depth that matches the risk.

  4. 164

    Dependency versions and lockfiles support controlled, repeatable builds.

  5. 165

    Each release produces a machine-readable software bill of materials, such as SPDX or CycloneDX.

  6. 166

    SBOM coverage includes direct and transitive dependencies and runtime or container bases within a defined scope.

  7. 167

    Record what the SBOM doesn't cover, including any separately downloaded extensions.

  8. 168

    You can connect the SBOM, source revision, build run and production artefact.

  9. 169

    Artefact provenance and integrity are checked during release, and repository access is restricted.

  10. 170

    Licences, required notices and rights to third-party material are reviewed.

Checks 171–180

Updates and vulnerability handling

Lead: the technical owner and component maintainers. Evidence: coverage reports and production verification.

  1. 171

    Operating systems, container bases, runtimes, frameworks and libraries have maintainers and a regular update schedule.

  2. 172

    Include databases, deployment tools, coding agents and extensions in update responsibilities.

  3. 173

    Dependencies and release artefacts are reassessed as new vulnerabilities emerge; SBOM and inventory gaps are investigated.

  4. 174

    Prioritise findings by exposure, exploitability and business impact.

  5. 175

    Remediation targets reflect severity, with a working route for urgent fixes.

  6. 176

    Exceptions and temporary mitigations have owners, reasons and expiry dates.

  7. 177

    Test updates against application behaviour, with a way to ship urgent fixes outside routine maintenance cycles.

  8. 178

    Verify the fix in the version actually deployed, including any older instances still running alongside it.

  9. 179

    Track supplier end-of-support dates and retiring API or model versions before they cause disruption.

  10. 180

    The organisation can see which applications are outdated, who owns them and what's blocking fixes.

Checks 181–190

Builds and releases

Lead: the platform and application teams. Evidence: repeatable deployment and rehearsed recovery.

  1. 181

    Infrastructure and environment configuration are versioned, with detection of unauthorised drift.

  2. 182

    Test environments reproduce the relevant production behaviour without sharing production credentials.

  3. 183

    Pipeline identities can deploy only to authorised environments with the necessary permissions.

  4. 184

    Code, test and security checks block releases under defined failure conditions.

  5. 185

    You can identify the deployed artefact as the one that passed testing and approval.

  6. 186

    Application, configuration and infrastructure changes follow change management, including approved automated routes.

  7. 187

    Deployment accounts for permitted downtime, traffic management and database changes.

  8. 188

    Rehearse rollback or forward recovery and check data compatibility.

  9. 189

    Feature rollout can be limited to appropriate users or controlled with managed feature flags where needed.

  10. 190

    You can trace the change, deployer, approval, time and production outcome.

Checks 191–200

Tests before real use

Lead: the application team and process owner. Evidence: results tied to requirements.

  1. 191

    Expected behaviour comes from approved requirements and business examples.

  2. 192

    Unit tests cover calculations, state transitions and rule boundaries.

  3. 193

    Integration tests cover successful responses, errors and timeouts.

  4. 194

    End-to-end tests cover critical user journeys, including consequential approvals and payments.

  5. 195

    Negative tests try to bypass object permissions, cross tenant boundaries and escalate privileges both horizontally and vertically.

  6. 196

    Add regression coverage for significant defects once they're fixed.

  7. 197

    Load testing uses realistic data, concurrency and peaks.

  8. 198

    Test selection includes supported browsers, devices, slow connections and enterprise endpoint restrictions.

  9. 199

    Agent-reported test results can be checked against actual runs; generated tests are challenged with independent cases.

  10. 200

    The process owner accepts the behaviour and known limitations before users depend on the application.

Checks 201–210

Capacity, performance and cost

Lead: platform, application and budget owners. Evidence: measurements and tested limits.

  1. 201

    Response-time, availability and data-freshness objectives reflect business needs.

  2. 202

    Capacity estimates cover ordinary use, peaks and growing data volumes.

  3. 203

    Test scaling and set upper bounds that protect systems and budgets.

  4. 204

    Caching preserves separation between users and customers.

  5. 205

    Cache expiry and invalidation account for data changes and permission revocation.

  6. 206

    Content-delivery services use approved locations and handling rules where required.

  7. 207

    You can attribute cloud, model, storage and external API costs to the application.

  8. 208

    Unusual consumption alerts a named person in time for them to act.

  9. 209

    Know how cost limits actually work and how long enforcement takes; a budget alert doesn't block spending.

  10. 210

    Resource exhaustion or budget limits produce predetermined application behaviour.

Checks 211–220

Logs, monitoring and audit history

Lead: monitoring owners and the application team. Evidence: useful dashboards and an end-to-end alert test.

  1. 211

    Searchable structured logs reach an approved central service.

  2. 212

    You can trace requests, background jobs and integration calls through the same operation.

  3. 213

    Audit records identify the actor, action, target, time and outcome.

  4. 214

    Access to sensitive information is logged when the use case or applicable obligation requires it.

  5. 215

    Keep passwords, keys and unnecessary confidential content out of logs.

  6. 216

    Log access, tamper protection, time synchronisation and retention are managed.

  7. 217

    Error monitoring groups related failures and identifies the relevant release.

  8. 218

    External availability and transaction checks measure behaviour experienced by users.

  9. 219

    Monitoring covers latency, errors, throughput, queues and business-significant failures.

  10. 220

    Test that alerts arrive, and review noise, missed incidents and whether escalation works.

Checks 221–230

Backups, recovery and continuity

Lead: the service owner and platform team. Evidence: dated recovery exercises with measured results.

  1. 221

    The business agrees how much data it can afford to lose and how long recovery can take.

  2. 222

    Backup frequency and retention meet those objectives.

  3. 223

    Recovery coverage includes required files, configuration and encryption-key dependencies.

  4. 224

    Backups are protected against production-account compromise and ransomware.

  5. 225

    A restore into a separate environment has succeeded, and you've checked the integrity of what came back.

  6. 226

    Point-in-time recovery is available where the data-loss objective requires it.

  7. 227

    Exercise recovery of the whole application, including dependencies, at intervals suited to the risk and after significant changes.

  8. 228

    Restores account for information deleted since the backup was taken.

  9. 229

    Additional datacentres or regions follow continuity requirements, with failover tested where used.

  10. 230

    The business has a workable fallback while the application is down.

Checks 231–240

Incidents and security events

Lead: the service owner and incident-response function. Evidence: exercises, current contacts and completed corrective actions.

  1. 231

    Support ownership covers the agreed service hours, with on-call coverage where required.

  2. 232

    Alerts have severity levels, response targets and escalation routes.

  3. 233

    Someone other than the original developer can follow the runbooks for common failures.

  4. 234

    Operators can isolate the application, close a connection or revoke an identity during an incident.

  5. 235

    A stolen-device or leaked-credential response covers the further access it could give someone.

  6. 236

    Investigation evidence is preserved with controlled access.

  7. 237

    Responsibilities and applicable deadlines for notifying customers, staff and authorities are documented.

  8. 238

    Users have a working incident-communication channel, with an independent status page where needed.

  9. 239

    External researchers can find a vulnerability-reporting channel that reaches a responsible person.

  10. 240

    Significant incidents lead to corrective actions, with owners and completion tracked.

Checks 241–250

AI inside the running application

Lead: the application owner and AI-service owner. Evidence: evaluations, authority tests and model-change approval.

  1. 241

    The model's task, permitted data sources and decision-making authority are documented.

  2. 242

    Approve data sent to models against the provider's processing, retention and training terms.

  3. 243

    Retrieval, documents and memory enforce user permissions and tenant isolation.

  4. 244

    Prompt-injection tests include malicious instructions in files, search results and tool responses.

  5. 245

    Validate generated code, SQL, HTML and tool calls, and limit how they can execute.

  6. 246

    Run application-specific evaluations and known failure cases before material model or workflow changes.

  7. 247

    Model, prompt, retrieval and tool versions are traceable to production.

  8. 248

    User and tenant consumption limits constrain runaway use and agent chains.

  9. 249

    Plan for model outages and retirement; evaluate fallback models before using them.

  10. 250

    Control prompt and response logging, and give uncertain or incorrect outcomes a route to a human.

Checks 251–260

Usability and accessibility

Lead: the application team and process owner. Evidence: user testing and accessibility assessment.

  1. 251

    Users can tell what the application is for, which environment they're in and which object they're acting on.

  2. 252

    Empty states, loading and failures have understandable presentations.

  3. 253

    Error messages give users a next step without exposing internal information.

  4. 254

    A correctable form error doesn't throw away the user's work.

  5. 255

    Going back, refreshing or using several tabs doesn't unexpectedly lose data or repeat actions.

  6. 256

    Users can tell the difference between a draft, saved information and a completed operation.

  7. 257

    Offer undo for reversible actions, or a clear way to correct them.

  8. 258

    Keyboard access, screen readers, focus and contrast are checked against applicable accessibility requirements.

  9. 259

    The application works on the devices and connections the organisation actually uses.

  10. 260

    User guidance, onboarding and feedback channels match the released application.

Checks 261–270

Messages, languages and support tools

Lead: the application team and service support. Evidence: delivery tests and restricted support access.

  1. 261

    Supported languages, date formats, numbers and any required right-to-left layouts work correctly.

  2. 262

    Reminder time zones, daylight-saving changes and quiet hours work as users expect.

  3. 263

    Sending domains are approved, and SPF, DKIM and DMARC are verified against actual application messages.

  4. 264

    Test messages with the email clients and filtering systems the enterprise uses.

  5. 265

    Bounces, complaints and delivery failures are handled.

  6. 266

    Users can manage optional notifications, with mandatory messages identified separately.

  7. 267

    Check message content and recipients so information doesn't go to the wrong person.

  8. 268

    Support can investigate and perform permitted corrections through a restricted administrative interface.

  9. 269

    Routine support doesn't depend on manual database edits or a developer's personal privileges.

  10. 270

    Users can find relevant release notes and explanations of what's changed.

Checks 271–280

Privacy, contracts and procurement

Lead: the business owner, privacy function and procurement. Evidence: applicability decisions and current agreements.

  1. 271

    Personal-data purposes, legal bases, parties and required processing records are defined.

  2. 272

    DPIA applicability is assessed, and required assessments are completed before processing.

  3. 273

    Retention, deletion and preservation obligations cover relevant copies, indexes and derived data.

  4. 274

    Access, correction and deletion procedures cover connected systems and controlled backup expiry.

  5. 275

    Terms and privacy notices describe what the application actually does.

  6. 276

    Suppliers, subprocessors, assurance scope, processing agreements and required transfer mechanisms are assessed.

  7. 277

    Security-questionnaire answers and applicable assurance reports have evidence, defined scope and responsible owners.

  8. 278

    Sector and use-specific obligations are assessed, including relevant GDPR, CRA, AI Act, Data Act, NIS2, DORA or HIPAA requirements.

  9. 279

    Applicable healthcare processing agreements and payment-card-data compliance scope are resolved before that use begins.

  10. 280

    Contracts cover support, data return, material changes and how to leave the service.

Checks 281–290

Billing, when the application bills

Lead: finance and the application team. Evidence: reconciled trial transactions and payment-failure tests.

  1. 281

    Payments use an approved provider, with card-data handling minimised.

  2. 282

    Payment retries and repeated clicks can't accidentally charge twice.

  3. 283

    Subscriptions, renewals, cancellations and access expiry work together.

  4. 284

    Plan changes and partial-period charges follow the contract.

  5. 285

    Control failed-payment retries, reminders and service restrictions.

  6. 286

    Invoices contain correct company details, order references and required purchase-order numbers.

  7. 287

    Tax, currency and rounding treatment match the relevant sales and transaction rules.

  8. 288

    Credits, refunds and partial refunds can be traced to the original transaction.

  9. 289

    Usage records, invoice lines, payments and accounting reports reconcile with agreed pricing.

  10. 290

    Annual billing and customer-specific terms are tested through contract changes.

Checks 291–300

Maintenance, handover and retirement

Lead: the business and technical owners. Evidence: a handover exercise and lifecycle plan.

  1. 291

    Maintenance has access to architecture, development, security, operations and testing expertise, including people who can debug generated code when agents can't fix it.

  2. 292

    A second person can build, deploy, recover and diagnose the application.

  3. 293

    The code is understandable, its modules can be maintained, and abandoned or unnecessary code is removed.

  4. 294

    Parallel development keeps the required checks; the technical owner can stop unsafe releases and changes that break other functions.

  5. 295

    Review benefits, usage, costs and emerging risks on an agreed schedule.

  6. 296

    New data, integrations, purposes or permissions trigger the required reassessment.

  7. 297

    When an owner or supplier changes, transfer access, documentation and the knowledge needed to run the application.

  8. 298

    Export required data in a usable format and verify that migration preserves its integrity.

  9. 299

    On retirement, close integrations, schedules, identities and resources; handle domains and DNS so nobody can take over abandoned connections.

  10. 300

    Retirement updates inventories, contracts and costs; any copies left behind have an owner and a defined retention period.

EU regulation through 2027

The regulatory bonus: building today for obligations through 2027

You might still be running an application built today several years from now. The way you record releases, manage permissions and organise data will affect how much work a new obligation creates. If you don't record a development risk assessment or where training data came from, the person maintaining the application later may have no way to recover that information.

This section was researched on 16 October 2026 and covers existing obligations and confirmed application dates through 31 December 2027. These are the engineering and operating questions to work through with the people responsible for compliance. Which rules apply depends on your organisation, product, data, role and use case.

EU regulation: current position and application dates through 2027
RegimeCurrent position and relevant dates
GDPR

Already applicable. Privacy by design, lawful processing, rights, security and required impact assessments belong in the design and operation of the system. EDPB

NIS2

Apply the relevant national law and sector rules. Finland's obligations entered into force on 8 April 2025. Traficom

CRA

Reporting obligations apply from 11 September 2026. Main product requirements apply from 11 December 2027, subject to scope and transition rules. European Commission

AI Act

Existing prohibitions, literacy measures and applicable transparency duties already apply. Annex III high-risk requirements apply from 2 December 2027 under the amended timetable. Article 113

Data Act

Generally applicable since 12 September 2025. Access-by-design applies to relevant connected products and related services placed on the market after 12 September 2026. Covered switching charges end on 12 January 2027. Certain older contracts enter the unfair-terms rules on 12 September 2027. Commission explanation, Article 50

Checks B01–B04

Scope, roles and evidence

Lead: the business owner and relevant legal or compliance specialists. Evidence: a dated applicability record.

  1. B01

    Record which laws apply, to which legal entity, in which jurisdiction, and why. If something doesn't apply, record why.

  2. B02

    Identify roles separately: controller, processor, product manufacturer, AI provider, AI deployer, data holder and data-processing-service provider.

  3. B03

    Keep the first-release, first-use, contract and modification dates you'll need to work out which transition rules apply.

  4. B04

    Connect each obligation to a control, owner, evidence and review date. Make clear which work belongs to the application team, the platform or the wider organisation.

Checks B05–B10

GDPR capabilities needed before processing

Lead: the controller's business owner, privacy function and application team.

  1. B05

    Assess the legal basis for each processing purpose, including new uses for analytics, AI evaluation or training. Lawful processing

  2. B06

    Implement and test privacy defaults for collection, visibility, retention and access. Complete a DPIA before processing when required. EDPB

  3. B07

    Make applicable rights executable across connected systems, including access, correction, erasure, restriction, objection and portability. Individuals' rights

  4. B08

    Apply documented retention and deletion handling to logs, caches, exports, search indexes, AI retrieval stores and backups.

  5. B09

    Map supplier processing and international transfers, including support access, telemetry, model providers and subprocessors. Transfers

  6. B10

    Assess consequential automated decisions separately, including applicable restrictions, information, human intervention and challenge mechanisms. Automated decisions

Approved hosting is part of this, but your app may also send telemetry to one provider and prompts to another. You need to account for those flows too.

Checks B11–B15

NIS2 and the organisation operating the application

Lead: the accountable entity's management, security function and service owner.

  1. B11

    Link the application asset record to the services it supports, including criticality, dependencies, suppliers and owners.

  2. B12

    Connect security measures, effectiveness reviews and unresolved risks to the required management approval and oversight.

  3. B13

    Make supplier arrangements support incident notification, vulnerability handling, maintenance and access to evidence.

  4. B14

    Detect and escalate significant incidents using the applicable national and sector thresholds and reporting rules.

  5. B15

    Exercise recovery and incident response, and track corrective actions to completion.

These obligations concern the organisation and its systems. The evidence for each application needs to feed into the organisation's risk-management process. The NIS2 reporting sequence generally includes an early warning within 24 hours, notification within 72 hours and a subsequent final report. Risk-management requirements, management accountability, reporting

Checks B16–B21

CRA readiness during development

Lead: the product manufacturer and responsible engineering and security owners, where the product is in scope.

  1. B16

    Document product scope and classification, including distributed components and integral remote processing.

  2. B17

    Tie risk assessments, architecture, security requirements, test results and vulnerability decisions to product releases.

  3. B18

    Use the SBOM to connect vulnerable components to affected releases, installations and remediation decisions.

  4. B19

    Operate a vulnerability-reporting channel with responsible triage, investigation, remediation and communication.

  5. B20

    Provide secure update delivery throughout the support period, with update integrity and supported versions managed.

  6. B21

    Plan the applicable conformity assessment, technical documentation, declaration and CE marking, alongside a justified support period and disclosed end date.

The CRA concerns products with digital elements made available on the market. An application you build for internal use isn't automatically in scope. Its main requirements generally reach products placed on the market before 11 December 2027 when they undergo substantial modification after that date. Reporting also covers earlier products. CRA scope and transition rules

The legal SBOM minimum covers at least top-level dependencies. I've recommended broader coverage in the main checklist. Support generally lasts at least five years unless expected product use is shorter; longer expected use can require longer support. CRA legal text

Checks B22–B29

AI Act responsibilities for the actual use case

Lead: the relevant AI provider and deployer, with the process owner and compliance function.

  1. B22

    Inventory AI functionality and intended use, including affected people, decisions and the organisation's provider or deployer role.

  2. B23

    Screen prohibited uses before deployment and reassess when purpose or context changes.

  3. B24

    Support appropriate AI literacy for staff and others operating the system on the organisation's behalf. Article 4

  4. B25

    Implement applicable interaction notices, machine-readable output marking and content disclosures. Assess each obligation separately. Article 50

  5. B26

    Create required high-risk provider evidence during development: risk management, data governance, evaluations, documentation, quality management and conformity work. Provider duties

  6. B27

    Give designated human overseers the information, competence, authority and controls needed to intervene or stop use.

  7. B28

    Retain required operational logs and traceability with appropriate access and retention rules. Deployer duties

  8. B29

    Assess GDPR DPIA and AI Act fundamental-rights assessment triggers separately, reusing relevant evidence where permitted. Article 27

Using AI to write code doesn't, by itself, make the resulting software an AI system. If you develop an AI system for your own organisation to use, though, you can have provider responsibilities. Definitions

Additional Article 5 prohibitions concerning non-consensual intimate material and child sexual abuse material apply from 2 December 2026. Assess relevant systems against the provision's definitions, scope and safeguard conditions. Article 5, application dates

There are two earlier transition dates to account for as well: certain synthetic-content systems placed on the market before 2 August 2026 must meet Article 50(2) by 2 December 2026; general-purpose models placed on the market before 2 August 2025 reach their compliance deadline on 2 August 2027. Existing high-risk systems have separate provisions tied to significant design changes. Record which provision applies to your system. Article 111

Checks B30–B34

Data access and a usable exit

Lead: the relevant data holder or service provider, with product, engineering and procurement owners.

  1. B30

    For relevant connected products, identify eligible data, metadata, entitled users and the required access methods.

  2. B31

    Authenticate sharing requests and preserve personal-data permissions, confidentiality and applicable trade-secret safeguards.

  3. B32

    Make covered services' exportable data, metadata and digital assets available through appropriate formats and interfaces.

  4. B33

    Align switching contracts with actual assistance, continuity, security, retrieval and deletion capabilities.

  5. B34

    Remove covered switching charges by 12 January 2027 and review older contracts that enter the unfair-terms rules on 12 September 2027.

The switching provisions concern qualifying data-processing services, including relevant SaaS offerings. They don't require every internal database to expose all its contents. Standard service fees are distinct from switching charges. The older-contract transition covers contracts concluded on or before 12 September 2025 that are indefinite or due to expire on or after 11 January 2034. Scope, Articles 25, 29 and 50

Checks B35–B36

Incidents and changes across regimes

  1. B35

    Maintain separate reporting decisions for GDPR, NIS2, CRA and contracts. The same incident can require reports to different recipients, under different thresholds and deadlines.

  2. B36

    Reassess obligations when data, markets, users, AI purposes, permissions or distribution change. Give future requirements a budget, an owner and evidence that will show the work is done.

A GDPR processor must notify its controller without undue delay; that is separate from the controller's applicable 72-hour authority-notification deadline. CRA reporting covers actively exploited vulnerabilities and severe product-security incidents, with its own early warning, notification and final-report requirements. GDPR reporting guidance, CRA reporting

The applicability review should also consider sector-specific requirements such as DORA and applicable accessibility or medical-device rules. The revised Product Liability Directive deserves attention too: national transposition is due by 9 December 2026, and its product definition expressly includes software and AI. EU legal summary

Keep proposed changes on a separate watchlist. Don't treat the wider Digital Omnibus or proposed NIS2 amendments as enacted application deadlines. Digital Omnibus proposal, NIS2 status

What the enterprise should provide

Fig. 02 · Who does what
  1. Business owner

    Who may approve a purchase?

  2. Application team

    Can a cancelled approval create an order?

  3. Platform team

    Hosting, identity, secrets and monitoring

Purchasing app

The platform provides shared capabilities. The application team verifies behaviour. The business owner decides who has authority.

When I talk about an enterprise AI software factory, I mean support for all of this: building, releasing, monitoring and maintaining software under the organisation's rules. The application record should make it clear what the platform provides, what the application team has checked and who can make the business decisions.

The person who found the purchasing problem should be able to get help turning their idea into something the team can use. Give them an approved environment, a supported identity integration, somewhere to keep secrets and a release pipeline. Connect the application to monitoring, asset management and maintenance.

The application team still has work to do. Does the purchaser get access to the right supplier records? Can a cancelled approval still produce an order? Restore the application and check that the result is right. The business owner needs to decide who can commit the company to a purchase and what people should do when the system is down.

A year later, when the original builder has moved on, someone else should be able to find the application, understand its permissions, update it and recover it. The purchasing team should still be able to get its work done.

Sources and further reading

Source note. The starting point for this checklist was Mark Ajzenstadt's production-readiness post. I've reorganised and expanded it to cover enterprise ownership, platforms, operations and regulation. For detailed security acceptance criteria, use the OWASP Application Security Verification Standard; for secure-development practices, the NIST Secure Software Development Framework.

A few practical questions

Should everyone in an enterprise be allowed to experiment with AI coding?

I want people across the organisation to have access to approved AI tools, somewhere safe to experiment and time to use them. Encourage them to build things that solve problems in their own work. People need to know which tools they can use, what data they can put into them and where to get help when an idea starts working. The company should make that easy to find.

Does every application need all 336 checks?

If the application doesn't bill anyone, the billing section won't apply. Runtime AI checks matter when there's AI in the running application. Whether you need a second region depends on how the business needs to recover. Record any exception with a reason, an owner, an expiry date and suitable safeguards. An internal risk acceptance doesn't let you waive a legal or contractual obligation.

Does using AI to write code make the application an AI system under the AI Act?

Using AI to write code doesn't, by itself, make the resulting software an AI system. If you develop an AI system for your own organisation to use, though, you can have provider responsibilities. Definitions

Check your readiness for governed delivery

See how a requirement or a repository finding becomes a reviewed change.