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
One application, growing responsibilities
- Try an idea
Sample spreadsheet
- Connect real data
Supplier records
- Allow business actions
Purchase 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:
- 1–80Ownership, approved environments, assets, data, authority, development tools and documentation
- 81–160Authentication, authorisation, security, databases, business rules and integrations
- 161–240Software supply chain, updates, releases, testing, monitoring, recovery and incidents
- 241–300Runtime AI, user experience, support, contracts, billing and the end of the application's life
- B01–B36EU regulatory applicability and readiness through 31 December 2027
In this essay
CSV · 336 checks · owner, evidence and review fields
Read or save the full articleChecks 1–10
Ownership and purpose
Lead: the business owner. Evidence: an approved application record.
- 1
A named business owner is responsible for the application's purpose and continued use.
- 2
A named technical owner is responsible for maintenance, fixes and technical decisions.
- 3
Both owners have deputies and cover for when they're away or move on.
- 4
Write down who the application is for, what it's for and which uses are allowed.
- 5
Spell out what the application mustn't be used for and where its scope ends.
- 6
The process owner approves the workflow and its effects on other teams.
- 7
Assess the impact of incorrect results, data exposure and service interruption separately.
- 8
Business criticality determines approval authority, monitoring and support coverage.
- 9
Maintenance, licences, infrastructure and future changes have a budget, with someone responsible for it.
- 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.
- 11
The application runs on an organisation-approved platform, such as its own datacentre or an approved Azure environment.
- 12
The approval names the subscription, account, tenant or cluster, including allowed regions and services.
- 13
Cloud accounts, hosting arrangements and service contracts are under company control.
- 14
The environment follows the organisation's security configuration, network design and resource-creation policies.
- 15
Public endpoints and internet exposure receive the required approval.
- 16
Restrict network access to databases, administration interfaces and internal services.
- 17
Control outbound connections, including those to AI providers and external storage.
- 18
Development, test and production have separate data, identities and permissions.
- 19
Make clear what the hosting provider handles and what your own teams handle for each component.
- 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.
- 21
The application is registered in the organisation's application inventory, asset system or configuration management database.
- 22
The record includes owners, contacts, criticality, data classification and lifecycle status.
- 23
Link source repositories, build pipelines and artefact repositories to the same application record.
- 24
Servers, containers, functions, databases, storage and scheduled jobs are inventoried.
- 25
Record domains, DNS, certificates and who renews them; registrar accounts and recovery channels belong to the company.
- 26
The company controls external accounts, service identities, integrations and keys; store references in the inventory, not the secrets themselves.
- 27
Dependency records show which business processes stop working when a connected service goes down.
- 28
Resource identifiers connect costs, logs and alerts to the correct application.
- 29
Check the inventory against what's actually deployed, including manually created or forgotten environments.
- 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.
- 31
Each data category has an owner and classification, including personal information and trade secrets.
- 32
Collect and retrieve only the data the application needs for its purpose.
- 33
Document where data goes, from source systems through the application to external services.
- 34
Those flows include logs, caches, search indexes, analytics, backups and support tools.
- 35
Know where data is stored and processed, including subcontractors and support access.
- 36
Moving data to another region or provider follows the required approval process.
- 37
Tests and demonstrations use suitable synthetic data or data whose anonymisation has been assessed.
- 38
Any copy of production data used for testing has a justified purpose, suitable safeguards and approval.
- 39
Reports, downloads and temporary files keep the classification their contents require.
- 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.
- 41
Unattended integrations use dedicated service identities; access on behalf of a user keeps that user's identity and authorised scope.
- 42
Use short-lived workload identity in place of long-lived keys where it's supported.
- 43
Keep required secrets in an approved secrets-management service.
- 44
Secrets stay out of source code, browser bundles, URLs, logs and AI conversations.
- 45
Every identity receives only the actions and data access required for its task.
- 46
Development, deployment, administration and runtime identities are separated.
- 47
Administrators use individual accounts and strong authentication; elevated access is time-limited where appropriate.
- 48
Track who owns each key, when it expires and how it's rotated. Exercise emergency revocation.
- 49
When an employee leaves, remove access through active sessions, development tools and administrative connections.
- 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.
- 51
Each integration states whether it can read, modify, delete, send, publish or spend money.
- 52
Integrations that only retrieve data get read access without unnecessary write permissions.
- 53
Write access is restricted to the required objects, records, customers or organisational units.
- 54
The receiving system enforces permissions when the caller is an AI agent as well as a human.
- 55
Large, irreversible or otherwise consequential actions need human approval suited to their risk.
- 56
The approval shows the target, proposed change and expected effect, and applies only to that specific action.
- 57
Payments, bulk changes, messages and resource creation have enforceable quantity or value limits.
- 58
Destructive operations support previews or dry runs where technically possible.
- 59
An administrator can stop automation and revoke its access even when the application isn't working properly.
- 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.
- 61
Coding agents, models, extensions and MCP servers are approved for organisational use.
- 62
Check their terms, retention and possible training use before giving them confidential information.
- 63
Give agents only the files, directories and network access they need for the task.
- 64
Agent execution environments are isolated from production and unrelated projects.
- 65
Treat documents, websites and dependencies that agents read as possible sources of malicious instructions.
- 66
Code or the platform enforces tool permissions, even when a prompt asks otherwise.
- 67
Agents can't grant themselves more privileges, approve their own exceptions or disable required checks.
- 68
Changes to agent tools and instructions are versioned and reviewed.
- 69
Execution records identify models, changes, checks and approvals without exposing secrets.
- 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.
- 71
The specification explains what the application does, for whom and under which acceptance criteria.
- 72
User journeys cover errors, exceptions and interrupted work too.
- 73
Architecture documentation shows components, external dependencies and trust boundaries.
- 74
The data model explains meaning, relationships, ownership and lifecycle.
- 75
Keep the reasoning behind significant technical decisions, including the alternatives considered.
- 76
The threat model and risk register reflect the actual implementation and are updated when it changes.
- 77
APIs, events, configuration and differences between environments are documented.
- 78
Another developer can run the application from the README without asking its author to explain the missing steps.
- 79
Operating, maintenance, recovery and incident instructions are accessible when the application is down.
- 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.
- 81
Enterprise users authenticate through the approved identity provider and single sign-on.
- 82
OIDC or SAML integrations meet the organisation's identity-provider requirements.
- 83
Multi-factor authentication and applicable conditional-access policies cover administrators too.
- 84
Provisioning, role changes and removal follow the user's lifecycle through SCIM or another controlled process.
- 85
Test that removing a user removes their permissions and ends their sessions within the agreed time.
- 86
Sessions have appropriate lifetimes, and administrators can terminate all sessions for a user.
- 87
Any required local-password storage and recovery use an approved implementation.
- 88
Recovery links expire, work once and resist abuse.
- 89
Replacing a lost authentication factor doesn't create an easier way around authentication.
- 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.
- 91
Roles match actual responsibilities and define allowed actions precisely enough to enforce them.
- 92
The server checks authorisation for every protected operation and data object.
- 93
Changing
/documents/15to/documents/16, or calling the API directly, can't expose an unauthorised document. - 94
Tenant and organisational-unit isolation covers background jobs, searches, caches and exports.
- 95
Missing permissions or failed permission checks result in a safe denial.
- 96
Approvals, payments and access grants follow the required separation of duties.
- 97
Support impersonation is restricted, time-limited and auditable.
- 98
Guest and supplier access has a sponsor, limited scope and an expiry date.
- 99
Owners review access on a schedule based on risk, and whenever responsibilities change.
- 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.
- 101
The server validates input types, bounds and allowed values, regardless of what the interface checks.
- 102
Database access uses parameterised queries or equivalent safe interfaces.
- 103
Displayed content uses context-appropriate encoding to prevent cross-site scripting.
- 104
The session model's required cross-site request-forgery protection is implemented and tested.
- 105
User-supplied URLs can't provide unauthorised access to internal networks or cloud metadata services.
- 106
User input cannot become an uncontrolled shell command, filesystem path or executable template.
- 107
CORS, cookies, security headers and browser policies match the application's access model.
- 108
Remove debug endpoints, default credentials and unnecessary services from production.
- 109
Security testing and required independent penetration testing cover the actual operating environment.
- 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.
- 111
Network traffic uses encryption appropriate to its classification, with working certificate and peer-authentication checks.
- 112
Storage encryption covers databases, disks, objects and backups according to the approved classification.
- 113
Encryption-key access, rotation and recovery dependencies are managed.
- 114
Check actual file types and size limits on uploads, and run required malware checks.
- 115
Uploaded content can't execute with the application's privileges.
- 116
File access and sharing links enforce user and tenant permissions.
- 117
Archives, unusual filenames and large inputs cannot bypass limits or exhaust storage.
- 118
Temporary files and obsolete object versions expire under the retention policy.
- 119
Public exposure and changes to storage-sharing configuration are detected.
- 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.
- 121
The data model is reviewed against business concepts before real information is stored.
- 122
Keys, referential integrity, required fields and uniqueness constraints protect correctness.
- 123
Schema changes are versioned and repeatable.
- 124
Test recovery or repair procedures for migrations; rolling back code won't necessarily bring lost data back.
- 125
Assess what happens when a migration holds locks for too long, rewrites data or gets interrupted.
- 126
Old and new application versions coexist safely during deployment where required.
- 127
Test indexes and query plans with realistic data volumes.
- 128
Connection pools, timeouts and limits protect the database from overload.
- 129
Concurrent updates and transactions avoid lost changes and partially completed business operations.
- 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.
- 131
Approval limits, delegations and exceptional cases are specified.
- 132
One person with several accounts can't bypass a requirement for independent approvers.
- 133
Monetary calculations use appropriate integer units or exact decimal representations.
- 134
Rounding, currency conversion, negative values and zero follow the agreed rules.
- 135
Timestamps, local time and daylight-saving changes work correctly for the use case.
- 136
Names, identifiers, Unicode and missing values work without invalid assumptions about users.
- 137
Imports handle encodings, separators, invalid rows and partial failures.
- 138
Exports contain authorised data and appropriate protection against spreadsheet-formula injection.
- 139
Pagination, search and sorting handle changing data without silently losing or duplicating records.
- 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.
- 141
API contracts, versions and retirement dates are documented.
- 142
Incoming webhooks have authenticity and freshness checks.
- 143
Receiving the same event again can't unintentionally repeat the same business change.
- 144
Operators can see outgoing webhook delivery, retries and failures.
- 145
OAuth refresh, revocation and reauthorisation are tested.
- 146
External schema changes, missing fields and invalid responses fail in ways the application can handle.
- 147
Rate limits protect capacity and provide understandable responses to legitimate users.
- 148
Customer API credentials can be scoped, issued, rotated and revoked through controlled processes.
- 149
External integration partners have separate test environments and credentials where needed.
- 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.
- 151
Use a managed queue for slow tasks when the workload needs one.
- 152
Jobs have bounded execution time, retries and backoff appropriate to the operation.
- 153
A timeout doesn't trigger blind retries when the first attempt may already have changed data.
- 154
Jobs that keep failing go to a review queue with an owner and a recovery procedure.
- 155
Scaling the application or changing clocks can't accidentally multiply scheduled jobs.
- 156
Duplicate events and repeated form submissions are handled on the server.
- 157
Interrupted work resumes from a known state or follows a controlled recovery path.
- 158
Monitor queue depth, the age of the oldest job and processing capacity.
- 159
A dependency failure can't trigger an unbounded storm of requests to other systems.
- 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.
- 161
Source code and its history reside in company-controlled version control.
- 162
Changes pass the required reviews and checks, with traceable results.
- 163
Check package names, publishers, sources and installation scripts to a depth that matches the risk.
- 164
Dependency versions and lockfiles support controlled, repeatable builds.
- 165
Each release produces a machine-readable software bill of materials, such as SPDX or CycloneDX.
- 166
SBOM coverage includes direct and transitive dependencies and runtime or container bases within a defined scope.
- 167
Record what the SBOM doesn't cover, including any separately downloaded extensions.
- 168
You can connect the SBOM, source revision, build run and production artefact.
- 169
Artefact provenance and integrity are checked during release, and repository access is restricted.
- 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.
- 171
Operating systems, container bases, runtimes, frameworks and libraries have maintainers and a regular update schedule.
- 172
Include databases, deployment tools, coding agents and extensions in update responsibilities.
- 173
Dependencies and release artefacts are reassessed as new vulnerabilities emerge; SBOM and inventory gaps are investigated.
- 174
Prioritise findings by exposure, exploitability and business impact.
- 175
Remediation targets reflect severity, with a working route for urgent fixes.
- 176
Exceptions and temporary mitigations have owners, reasons and expiry dates.
- 177
Test updates against application behaviour, with a way to ship urgent fixes outside routine maintenance cycles.
- 178
Verify the fix in the version actually deployed, including any older instances still running alongside it.
- 179
Track supplier end-of-support dates and retiring API or model versions before they cause disruption.
- 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.
- 181
Infrastructure and environment configuration are versioned, with detection of unauthorised drift.
- 182
Test environments reproduce the relevant production behaviour without sharing production credentials.
- 183
Pipeline identities can deploy only to authorised environments with the necessary permissions.
- 184
Code, test and security checks block releases under defined failure conditions.
- 185
You can identify the deployed artefact as the one that passed testing and approval.
- 186
Application, configuration and infrastructure changes follow change management, including approved automated routes.
- 187
Deployment accounts for permitted downtime, traffic management and database changes.
- 188
Rehearse rollback or forward recovery and check data compatibility.
- 189
Feature rollout can be limited to appropriate users or controlled with managed feature flags where needed.
- 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.
- 191
Expected behaviour comes from approved requirements and business examples.
- 192
Unit tests cover calculations, state transitions and rule boundaries.
- 193
Integration tests cover successful responses, errors and timeouts.
- 194
End-to-end tests cover critical user journeys, including consequential approvals and payments.
- 195
Negative tests try to bypass object permissions, cross tenant boundaries and escalate privileges both horizontally and vertically.
- 196
Add regression coverage for significant defects once they're fixed.
- 197
Load testing uses realistic data, concurrency and peaks.
- 198
Test selection includes supported browsers, devices, slow connections and enterprise endpoint restrictions.
- 199
Agent-reported test results can be checked against actual runs; generated tests are challenged with independent cases.
- 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.
- 201
Response-time, availability and data-freshness objectives reflect business needs.
- 202
Capacity estimates cover ordinary use, peaks and growing data volumes.
- 203
Test scaling and set upper bounds that protect systems and budgets.
- 204
Caching preserves separation between users and customers.
- 205
Cache expiry and invalidation account for data changes and permission revocation.
- 206
Content-delivery services use approved locations and handling rules where required.
- 207
You can attribute cloud, model, storage and external API costs to the application.
- 208
Unusual consumption alerts a named person in time for them to act.
- 209
Know how cost limits actually work and how long enforcement takes; a budget alert doesn't block spending.
- 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.
- 211
Searchable structured logs reach an approved central service.
- 212
You can trace requests, background jobs and integration calls through the same operation.
- 213
Audit records identify the actor, action, target, time and outcome.
- 214
Access to sensitive information is logged when the use case or applicable obligation requires it.
- 215
Keep passwords, keys and unnecessary confidential content out of logs.
- 216
Log access, tamper protection, time synchronisation and retention are managed.
- 217
Error monitoring groups related failures and identifies the relevant release.
- 218
External availability and transaction checks measure behaviour experienced by users.
- 219
Monitoring covers latency, errors, throughput, queues and business-significant failures.
- 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.
- 221
The business agrees how much data it can afford to lose and how long recovery can take.
- 222
Backup frequency and retention meet those objectives.
- 223
Recovery coverage includes required files, configuration and encryption-key dependencies.
- 224
Backups are protected against production-account compromise and ransomware.
- 225
A restore into a separate environment has succeeded, and you've checked the integrity of what came back.
- 226
Point-in-time recovery is available where the data-loss objective requires it.
- 227
Exercise recovery of the whole application, including dependencies, at intervals suited to the risk and after significant changes.
- 228
Restores account for information deleted since the backup was taken.
- 229
Additional datacentres or regions follow continuity requirements, with failover tested where used.
- 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.
- 231
Support ownership covers the agreed service hours, with on-call coverage where required.
- 232
Alerts have severity levels, response targets and escalation routes.
- 233
Someone other than the original developer can follow the runbooks for common failures.
- 234
Operators can isolate the application, close a connection or revoke an identity during an incident.
- 235
A stolen-device or leaked-credential response covers the further access it could give someone.
- 236
Investigation evidence is preserved with controlled access.
- 237
Responsibilities and applicable deadlines for notifying customers, staff and authorities are documented.
- 238
Users have a working incident-communication channel, with an independent status page where needed.
- 239
External researchers can find a vulnerability-reporting channel that reaches a responsible person.
- 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.
- 241
The model's task, permitted data sources and decision-making authority are documented.
- 242
Approve data sent to models against the provider's processing, retention and training terms.
- 243
Retrieval, documents and memory enforce user permissions and tenant isolation.
- 244
Prompt-injection tests include malicious instructions in files, search results and tool responses.
- 245
Validate generated code, SQL, HTML and tool calls, and limit how they can execute.
- 246
Run application-specific evaluations and known failure cases before material model or workflow changes.
- 247
Model, prompt, retrieval and tool versions are traceable to production.
- 248
User and tenant consumption limits constrain runaway use and agent chains.
- 249
Plan for model outages and retirement; evaluate fallback models before using them.
- 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.
- 251
Users can tell what the application is for, which environment they're in and which object they're acting on.
- 252
Empty states, loading and failures have understandable presentations.
- 253
Error messages give users a next step without exposing internal information.
- 254
A correctable form error doesn't throw away the user's work.
- 255
Going back, refreshing or using several tabs doesn't unexpectedly lose data or repeat actions.
- 256
Users can tell the difference between a draft, saved information and a completed operation.
- 257
Offer undo for reversible actions, or a clear way to correct them.
- 258
Keyboard access, screen readers, focus and contrast are checked against applicable accessibility requirements.
- 259
The application works on the devices and connections the organisation actually uses.
- 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.
- 261
Supported languages, date formats, numbers and any required right-to-left layouts work correctly.
- 262
Reminder time zones, daylight-saving changes and quiet hours work as users expect.
- 263
Sending domains are approved, and SPF, DKIM and DMARC are verified against actual application messages.
- 264
Test messages with the email clients and filtering systems the enterprise uses.
- 265
Bounces, complaints and delivery failures are handled.
- 266
Users can manage optional notifications, with mandatory messages identified separately.
- 267
Check message content and recipients so information doesn't go to the wrong person.
- 268
Support can investigate and perform permitted corrections through a restricted administrative interface.
- 269
Routine support doesn't depend on manual database edits or a developer's personal privileges.
- 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.
- 271
Personal-data purposes, legal bases, parties and required processing records are defined.
- 272
DPIA applicability is assessed, and required assessments are completed before processing.
- 273
Retention, deletion and preservation obligations cover relevant copies, indexes and derived data.
- 274
Access, correction and deletion procedures cover connected systems and controlled backup expiry.
- 275
Terms and privacy notices describe what the application actually does.
- 276
Suppliers, subprocessors, assurance scope, processing agreements and required transfer mechanisms are assessed.
- 277
Security-questionnaire answers and applicable assurance reports have evidence, defined scope and responsible owners.
- 278
Sector and use-specific obligations are assessed, including relevant GDPR, CRA, AI Act, Data Act, NIS2, DORA or HIPAA requirements.
- 279
Applicable healthcare processing agreements and payment-card-data compliance scope are resolved before that use begins.
- 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.
- 281
Payments use an approved provider, with card-data handling minimised.
- 282
Payment retries and repeated clicks can't accidentally charge twice.
- 283
Subscriptions, renewals, cancellations and access expiry work together.
- 284
Plan changes and partial-period charges follow the contract.
- 285
Control failed-payment retries, reminders and service restrictions.
- 286
Invoices contain correct company details, order references and required purchase-order numbers.
- 287
Tax, currency and rounding treatment match the relevant sales and transaction rules.
- 288
Credits, refunds and partial refunds can be traced to the original transaction.
- 289
Usage records, invoice lines, payments and accounting reports reconcile with agreed pricing.
- 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.
- 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.
- 292
A second person can build, deploy, recover and diagnose the application.
- 293
The code is understandable, its modules can be maintained, and abandoned or unnecessary code is removed.
- 294
Parallel development keeps the required checks; the technical owner can stop unsafe releases and changes that break other functions.
- 295
Review benefits, usage, costs and emerging risks on an agreed schedule.
- 296
New data, integrations, purposes or permissions trigger the required reassessment.
- 297
When an owner or supplier changes, transfer access, documentation and the knowledge needed to run the application.
- 298
Export required data in a usable format and verify that migration preserves its integrity.
- 299
On retirement, close integrations, schedules, identities and resources; handle domains and DNS so nobody can take over abandoned connections.
- 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.
| Regime | Current 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.
- B01
Record which laws apply, to which legal entity, in which jurisdiction, and why. If something doesn't apply, record why.
- B02
Identify roles separately: controller, processor, product manufacturer, AI provider, AI deployer, data holder and data-processing-service provider.
- B03
Keep the first-release, first-use, contract and modification dates you'll need to work out which transition rules apply.
- 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.
- B05
Assess the legal basis for each processing purpose, including new uses for analytics, AI evaluation or training. Lawful processing
- B06
Implement and test privacy defaults for collection, visibility, retention and access. Complete a DPIA before processing when required. EDPB
- B07
Make applicable rights executable across connected systems, including access, correction, erasure, restriction, objection and portability. Individuals' rights
- B08
Apply documented retention and deletion handling to logs, caches, exports, search indexes, AI retrieval stores and backups.
- B09
Map supplier processing and international transfers, including support access, telemetry, model providers and subprocessors. Transfers
- 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.
- B11
Link the application asset record to the services it supports, including criticality, dependencies, suppliers and owners.
- B12
Connect security measures, effectiveness reviews and unresolved risks to the required management approval and oversight.
- B13
Make supplier arrangements support incident notification, vulnerability handling, maintenance and access to evidence.
- B14
Detect and escalate significant incidents using the applicable national and sector thresholds and reporting rules.
- 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.
- B16
Document product scope and classification, including distributed components and integral remote processing.
- B17
Tie risk assessments, architecture, security requirements, test results and vulnerability decisions to product releases.
- B18
Use the SBOM to connect vulnerable components to affected releases, installations and remediation decisions.
- B19
Operate a vulnerability-reporting channel with responsible triage, investigation, remediation and communication.
- B20
Provide secure update delivery throughout the support period, with update integrity and supported versions managed.
- 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.
- B22
Inventory AI functionality and intended use, including affected people, decisions and the organisation's provider or deployer role.
- B23
Screen prohibited uses before deployment and reassess when purpose or context changes.
- B24
Support appropriate AI literacy for staff and others operating the system on the organisation's behalf. Article 4
- B25
Implement applicable interaction notices, machine-readable output marking and content disclosures. Assess each obligation separately. Article 50
- B26
Create required high-risk provider evidence during development: risk management, data governance, evaluations, documentation, quality management and conformity work. Provider duties
- B27
Give designated human overseers the information, competence, authority and controls needed to intervene or stop use.
- B28
Retain required operational logs and traceability with appropriate access and retention rules. Deployer duties
- 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.
- B30
For relevant connected products, identify eligible data, metadata, entitled users and the required access methods.
- B31
Authenticate sharing requests and preserve personal-data permissions, confidentiality and applicable trade-secret safeguards.
- B32
Make covered services' exportable data, metadata and digital assets available through appropriate formats and interfaces.
- B33
Align switching contracts with actual assistance, continuity, security, retrieval and deletion capabilities.
- 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
- 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.
- 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
- Business owner
Who may approve a purchase?
- Application team
Can a cancelled approval create an order?
- Platform team
Hosting, identity, secrets and monitoring
Purchasing app
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.