Did you know that turning a feature flag ‘on for 20%’ does not mean exactly twenty of every hundred users will receive it? Modern flags can choose a variation by a deterministic bucket based on a user, organisation or other context key. This helps a team introduce a new AI-agent capability gradually, but only when the application uses the correct stable identity and does not confuse feature availability with user permission. A feature flag can control which workflow is offered; it must not grant an agent the authority to send private information or change a protected resource without approval.
The practical method is to keep deployment separate from activation, define a safe fallback when flag evaluation fails, use trusted targeting context, preserve stable assignment where the task requires it, monitor real user outcomes and make an emergency stop gate effective at consequential tool boundaries. This guide works through an invented two-hundred-task rollout ledger, a forty-task educational transfer and vendor-specific LaunchDarkly and OpenFeature behaviours. Every number is fictional, not real eduKate operations or proof that artificial superintelligence exists.
Continue through How Super Intelligence Works. Agent Change Control provides the general release framework, while Graceful Degradation covers constrained operation during failures. This specialist guide focuses on how the flag evaluator actually assigns a capability and what it can—and cannot—stop.
Choose your learning route
- Releasing a new AI feature? Start with trusted context, stable bucketing and safe defaults.
- Protecting real actions? Focus on backend approvals, emergency stops and asynchronous workers.
- Learning Mathematics? Check the 160-account target and 200-task outcome ledger.
- Managing rollout quality? Review canary cohorts, guarded metrics, rollback and eventual flag retirement.
Contents
- 1. Deployment and release are not the same event
- 2. OpenFeature defines a portable evaluation interface
- 3. Stable targeting keys shape who receives a feature
- 4. Twenty percent is a population target, not an exact sample count
- 5. Context kinds and attribute choice can change exposure
- 6. A flag is not an access-control system
- 7. Choose safe defaults when evaluation is unavailable
- 8. A kill switch stops new effects, not completed history
- 9. Stable assignment across long-running agent tasks
- 10. Rollouts should be tied to task outcomes
- 11. A fictional two-hundred-task rollout ledger
- 12. Use a table to distinguish control decisions from completion
- 13. Increase a rollout without shifting every task unpredictably
- 14. Emergency disable should also reach asynchronous workers
- 15. A forty-task school-publication transfer
- 16. Privacy and fairness of targeting decisions
- 17. Flags need lifecycle ownership and retirement
- 18. Five defects a rollout test should uncover
- 19. Practical release plan for a small education service
- Frequently asked questions
- Official flag documentation
- Related agent engineering
1. Deployment and release are not the same event
Deploying code places a new implementation on servers, while releasing a feature makes that implementation available to a selected audience. A feature flag can separate the two under an appropriate application design. A team can deploy a new draft-generation method while leaving public publishing disabled until specific tests, source reviews and permissions are ready. This can reduce risk compared with switching every user at once.
LaunchDarkly documents percentage, progressive and guarded rollout methods. A percentage rollout assigns selected contexts to variations, while a progressive rollout increases the exposure over time. A guarded rollout can monitor designated regression metrics and take configured action when conditions are met. The operational details depend on the service and plan; these are not universal guarantees of every flag provider.
Do not assume a model’s internal text saying ‘feature enabled’ changes actual code routing. A trusted application evaluates the flag under the correct environment and uses the result to choose the permitted workflow implementation. If the model can set a local boolean to turn on any dangerous tool, that is not meaningful release governance.
Feature deployment, task eligibility, approval and completion are separate facts. A new source-retrieval method may be available to a cohort while a specific parent still lacks permission to read another family’s file. A new public publishing tool may be deployed but held for required editor approval. The final user outcome needs its own verified target state.
Return to contents or continue with OpenFeature defines a portable evaluation interface.
2. OpenFeature defines a portable evaluation interface
OpenFeature’s specification describes a vendor-neutral API for evaluating flags, with providers implementing the actual flag resolution. This can help application code use a consistent interface while changing its backend provider under a reviewed migration. It does not remove the responsibility to configure the provider correctly or to check current user permission at the protected tool boundary.
OpenFeature’s evaluation context carries data used for targeting. It can include the subject’s targeting key and other attributes such as tenant, application environment or task category. The application should supply these through a trusted identity and configuration path rather than use whatever string an untrusted webpage writes in the model prompt.
The specification includes supplied default values, including when a no-op provider is used before a provider is configured. A default is therefore part of the safety design. If a risky external-action flag cannot be evaluated, choose a fallback consistent with the actual policy, such as not initiating new sends; do not let an uninitialized system silently grant broad capability.
Provider readiness and stale status deserve monitoring. OpenFeature describes provider states such as READY, NOT_READY, STALE and ERROR. A controller should not infer that a flag is currently safe for an irreversible action merely because it had a prior cached True value. The correct response depends on provider semantics, task impact and whether a separate authoritative execution gate remains available.
Return to contents or continue with Stable targeting keys shape who receives a feature.
3. Stable targeting keys shape who receives a feature
LaunchDarkly explains that percentage rollouts use context kind and key values to place contexts into deterministic hash buckets. Under a stable configuration, the same relevant context can receive a consistent variation. This reduces the chance that a student sees two different drafting methods simply because the page reloaded.
Choose the right unit for the task. If a school organisation should receive one consistent behaviour across teachers, a stable organisation context may be appropriate; if the rollout is genuinely per individual learner, a user context might match the product contract better. Using a new random request ID on every evaluation can change the assignment between calls and produce an inconsistent multi-step task.
An identity chosen from user-submitted text is vulnerable to accidental mismatch or deliberate manipulation. The flag evaluator should receive the trusted tenant or account ID through the application. The model may know that the question concerns Mathematics, but it should not be able to impersonate an authorised organisation merely by changing the context key.
OpenFeature warns that evaluation context may include personally identifiable information, depending on how targeting keys and attributes are constructed. Use opaque stable identifiers where suitable and understand what the provider transmits or stores. Avoid putting a full student name, private email or medical detail into rollout metadata simply to choose a drafting variation.
Return to contents or continue with Twenty percent is a population target, not an exact sample count.
4. Twenty percent is a population target, not an exact sample count
A percentage rollout assigns contexts to deterministic ranges or buckets under the provider’s documented algorithm. In a sufficiently large eligible population, the observed share can approach the configured allocation, but small samples may deviate. LaunchDarkly’s progressive-rollout documentation explicitly notes that small populations may not match the requested percentage precisely.
Imagine an invented group of 160 distinct stable accounts, with a target allocation of 25% to a new source-retrieval method. The target share corresponds to 160 × 0.25 = 40 accounts. Under one hypothetical assignment the actual count happens to be forty. Another small population or provider hash distribution could produce a different integer; do not claim the percentage configuration guarantees this precise count.
One account can generate many tasks. A per-account 25% rollout does not imply that exactly 25% of model calls use the new method when some accounts make far more requests than others. Report whether the denominator is accounts, sessions, tasks or tool calls. A model-generated success percentage can be misleading even if its division is mathematically accurate.
Use stable cohort measurements for operational decision-making. If a few heavy users dominate the call volume, compare quality per user task as well as aggregate request counts. A canary with fewer accounts could produce disproportionate load. The rollout system’s allocation mechanism and user-value metric are related but distinct.
Return to contents or continue with Context kinds and attribute choice can change exposure.
5. Context kinds and attribute choice can change exposure
LaunchDarkly’s percentage-rollout documentation notes an important edge case: when the evaluated context kind differs from the kind configured for a matching percentage rule, the system may serve the first listed nonzero variation instead of the expected off or default choice. This is an actual provider-specific behaviour worth testing, not a reason to assume all flag engines do the same thing.
Suppose a workflow expects a `user` context but a background publishing worker supplies only a `device` context. A careless rollout rule can place it in an unintended variation. The application must validate that the expected target kind is present for the relevant task. Where possible, a typed wrapper can refuse or safely default when the required context is missing.
Another subtlety is attribute-based bucketing. If every user in one country shares the same bucketing attribute, they might be assigned the same variation rather than individually sampled. LaunchDarkly documents rollouts based on context attributes, which can be useful for some purposes but produce very different distributional behaviour. Choose the unit intentionally.
Test complete evaluation contexts across interactive browsers, scheduled jobs and webhook consumers. A flag that works correctly in the main user interface can behave differently when an agent resumes in a worker without the expected tenant or user identity. Release verification must include every actual execution path, not just a screenshot of the flag dashboard.
Return to contents or continue with A flag is not an access-control system.
6. A flag is not an access-control system
A feature flag may decide whether the app offers a new download button or uses a more sophisticated summarizer. It should not be the sole basis for deciding who is legally or organisationally allowed to see a private pupil record. Backend object-level authorisation must still enforce the actual scope even if the UI displays a new capability.
An agent might generate a tool call to publish a school notice while the feature flag says the publishing workflow is available. That is not permission from the user or editor to publish the specific draft. A real execution gate should check current approval, exact content revision, target and recipient. A model’s narrative that the new feature is enabled cannot make those facts true.
A dangerous pattern is relying on a hidden or disabled frontend button while a backend API remains callable. An agent or another client can skip the UI. The protected resource should enforce policy regardless of how the request arrived, including when an earlier feature variation is cached. Feature flags improve release control but do not replace security boundaries.
Use separate records for rollout eligibility and action authority. The rollout evaluator returns a variation under a known flag version, while the approval service returns an applicable grant for the exact action. The executor requires both conditions where the task contract calls for them and reports actual provider readback before claiming completion.
Return to contents or continue with Choose safe defaults when evaluation is unavailable.
7. Choose safe defaults when evaluation is unavailable
A flag provider can be unreachable or temporarily stale. An application needs an explicit fallback value and operational behaviour for each capability. For an experimental article-writing style, reverting to a known stable version may preserve useful service. For a new automated email-send capability, withholding new sends can be the safer default. These choices depend on the real consequence and must be established before outage.
OpenFeature’s no-op-provider specification returns the caller-supplied default, which makes default design an application responsibility. A default of True on an uninitialized write feature can be hazardous. Conversely, False may block legitimate work where a critical safety mechanism depends on a flag that should never be toggled off. Avoid the simplistic belief that one boolean value is universally safe.
Distinguish a missing provider from a deliberate off decision. A user-facing response can say that the optional capability is temporarily unavailable, while retaining approved drafts and trusted source context. It should not fabricate that the action completed. A diagnostic record can show provider status, fallback value and next available route without exposing private targeting attributes.
Test provider initialization, stale configuration and service recovery in a sandbox. Verify the actual protected tool decision and the UI’s user-visible status. A healthy flag SDK does not prove the downstream provider successfully saved a post or sent a message; the target effect needs its own independent check.
Return to contents or continue with A kill switch stops new effects, not completed history.
8. A kill switch stops new effects, not completed history
An emergency stop flag can be useful when a newly released agent workflow creates unacceptable errors. Turning it off should prevent new affected operations from starting under the chosen design. It does not undo an email already sent, a public page already viewed or data already exported. Those require separate correction and incident response.
Define the stop boundary precisely. Does the flag stop new task admission, in-flight tool dispatch or every attempt to commit a high-consequence action? A UI-only flag might hide the capability while queued workers continue operating. A reliable emergency gate should be enforced at the actual tool boundary under current trusted configuration and task state.
Remote flag propagation can have delay or cached results under some SDK and provider arrangements. An operator should not claim an instantaneous absolute stop unless the architecture actually enforces it. For severe effects, pair feature shutdown with direct revocation, queue suspension or resource-level denial where appropriate, and verify with a controlled negative attempt.
Preserve accepted operations. If the provider returned an unknown result just before the stop, turning off the feature does not prove that operation failed. Reconcile the original operation ID and target state before retrying or announcing cancellation. A kill switch changes what may happen next; it does not rewrite what already occurred.
Return to contents or continue with Stable assignment across long-running agent tasks.
9. Stable assignment across long-running agent tasks
An AI task may start under the old model route and pause for a human approval. While it waits, the rollout percentage increases and the same account becomes eligible for a new variation. If the workflow resumes midstream under changed assumptions, stored tool schemas or source policies may no longer match. Define whether the task pins a workflow version or re-evaluates the variation before continuing.
Pinning can preserve compatibility for some harmless workflows, but must never pin an obsolete security permission. A current cancellation or emergency stop may override the old chosen route. A task can retain the original drafting model version while still checking today’s user approval and target revision at execution. Keep release version and permission version separately.
Re-evaluation can also be appropriate. A new source retriever may correct a bug and improve evidence before publication. The transition must be tested so the new component can interpret old task state without duplicated external actions. The Workflow Migrations guide explains versioned state and safe cutover.
Record which variation each step actually used. The same user may see one model generate a draft and another validate a source after rollout changes. The outcome ledger should not pretend one fixed variation controlled the entire task unless the system truly pinned it. Precise tracing is more useful than attributing all behaviour to the model that wrote the final sentence.
Return to contents or continue with Rollouts should be tied to task outcomes.
10. Rollouts should be tied to task outcomes
A release dashboard may show how many flag evaluations returned Enabled and how many model calls followed. These are activity metrics. A school assistant is useful when the actual information is sourced correctly, approved effects match the user’s intention and readers can understand the outcome. Define quality and safety checks beyond the number of new-variation invocations.
Measure factual answer quality with applicable source revisions and independent claim checks. Measure consequential actions by actual target readback. A new publishing route might reduce latency while increasing duplicate posts after timeouts. Aggregate speed alone would hide that defect. Use hard stop conditions for privacy, wrong-recipient or unauthorized publication failures.
Canary populations can differ from the full user base. A rollout targeted to one organisation or device type may not represent every language, accessibility need or workflow complexity. State which contexts were tested, and avoid projecting a small cohort’s results universally. A controlled gradual expansion can discover other failure modes while limiting exposure.
Guarded rollout tools can automate monitoring and rollback under configured metrics, but they do not know every business rule. An automatic safeguard is only as good as the signals and thresholds supplied. Keep qualified owner review for source disagreements, consent or other issues not captured by a generic latency or crash metric.
Return to contents or continue with A fictional two-hundred-task rollout ledger.
11. A fictional two-hundred-task rollout ledger
Consider a fictional Cedar Agent Release Desk with two hundred logical user tasks during a rollout review. One hundred thirty use the approved baseline route and reach their appropriately verified disposition. Forty use the new canary route and achieve verified permitted outcomes. Fourteen are held by an emergency disable rule before a new effect. Ten are refused because the specific user lacks permission. Six have uncertain external target evidence after a provider operation.
The mutually exclusive counts total 130 + 40 + 14 + 10 + 6 = 200. Baseline tasks are 65%, canary tasks 20%, emergency stops 7%, permission refusals 5%, and unknown effects 3%. These are invented outcomes chosen for arithmetic; their exact canary share is not a guarantee that a real 20% hashed rollout produces exactly forty successes from two hundred tasks.
The 130 baseline and forty canary tasks in this example are labelled with verified permitted outcomes, but the fourteen stopped tasks do not necessarily represent poor system behaviour. A correct emergency stop can prevent additional harm. The ten permission refusals are protective, and six unknown effects require reconciliation rather than immediate reattempt.
The population consists of logical tasks, not unique accounts or flag evaluations. One person might issue many tasks. A separate cohort assignment report should count stable subjects, while a user-value report counts verified tasks. Mixing these denominators can make a gradual release look more successful or more dangerous than the evidence actually supports.
Return to contents or continue with Use a table to distinguish control decisions from completion.
12. Use a table to distinguish control decisions from completion
An actionable table shows baseline verified outcomes, canary verified outcomes, emergency stops, permission denials and unknown effects. Each has a different owner and next action. Baseline and canary results can be compared under relevant quality labels; an emergency stop needs review of the reason; a permission denial should not be retried under broader privileges; an unknown effect needs target reconciliation.
Keep the flag version and evaluation context category in the ledger where relevant, with minimal private metadata. A raw user email is usually not necessary to compare outcomes. An opaque stable targeting identity and authorised source references may be sufficient. The log should not become an unrestricted record of every student attribute used by a feature provider.
Do not treat a sudden drop in canary traffic as proof the feature improved. The stop rule may have been activated, the SDK may be unavailable, or a targeting context could have changed. Correlate trusted evaluation results with provider status and actual user tasks, keeping source and effect evidence distinct.
Time snapshots matter. A case initially marked Unknown might later be confirmed completed under its original operation ID. Record the later evidence without pretending it was known at the original rollout cutoff. Accurate reporting supports safe release decisions better than a perfect-looking chart created by erasing uncertainty.
| Release disposition | Tasks | Share | Meaning |
|---|---|---|---|
| Baseline route, verified outcome | 130 | 65% | Current approved method |
| Canary route, verified outcome | 40 | 20% | New method within policy |
| Emergency stop applied | 14 | 7% | No new affected side effect |
| Permission gate denied | 10 | 5% | Do not override authority |
| External outcome unknown | 6 | 3% | Reconcile existing operation |
| All fictional tasks | 200 | 100% | Tasks, not flag evaluations |
Return to contents or continue with Increase a rollout without shifting every task unpredictably.
13. Increase a rollout without shifting every task unpredictably
LaunchDarkly’s percentage bucketing uses deterministic context assignment under the documented kind and key semantics. Increasing an allocation can add buckets to a variation instead of randomly selecting an entirely new set with each request. This supports consistent customer experiences where the configuration and targeting context remain stable.
Different flags can use independent bucketing, even when percentages are the same. LaunchDarkly documents that targeting the exact same contexts across separate percentage-rollout flags may require a shared segment. A team that assumes two independent 10% flags always select the same users can release an incompatible pair of features. Check the actual flag targeting design.
A single task can also traverse several services that evaluate the same flag. If one passes an organisation context and another passes a user context, they may resolve to different variations. Define which subject is authoritative and propagate that key consistently under the application’s privacy and identity rules. A model should not change it to get the feature it prefers.
Expansion should follow verified stop conditions. Increase from a small tested cohort only if actual source correctness, access, latency and target-effect checks meet the release policy. An emergency decline in quality should trigger a hold or rollback under the defined procedure, not an automatic rush to 100% because a dashboard says the rollout completed on schedule.
Return to contents or continue with Emergency disable should also reach asynchronous workers.
14. Emergency disable should also reach asynchronous workers
A flag may hide a new public posting button immediately in the browser, while an hourly worker or queued callback continues to execute under an older cached configuration. A service that claims the feature is disabled but leaves the backend route active has not reliably stopped the consequential behaviour. Test the worker and provider paths, not only the visible interface.
An application can require a current release gate at the actual write boundary. Where flag propagation is too slow for a severe incident, revoke the affected tool credential, disable queue admission or apply a direct resource-level denial as appropriate. These are distinct controls that should be used under an accountable incident process, not improvised by the language model.
Preserve safe preparatory work when the new external action is stopped. A student worksheet draft may still be viewable by its legitimate author while public posting is disabled. If the user needs a human review route, explain the current state and limitation rather than telling them everything has been erased. A stop gate protects future effects without negating legitimate earlier work.
Test a lost acknowledgement after the stop. The publishing provider may have accepted the operation before the flag turned off, so the result could be Unknown. Reconcile the canonical post rather than blindly resubmitting when the flag returns. Correct incident recovery depends on stable resource identity, not a sequence of optimistic chat messages.
Return to contents or continue with A forty-task school-publication transfer.
15. A forty-task school-publication transfer
Transfer the method to an invented school notice publisher. Of forty logical tasks, twenty-four complete on the baseline draft route, eight complete through a new source-checking canary, four are appropriately stopped because the new service fails a release rule, two are denied for missing editorial approval, and two have ambiguous publication results. The total is 24 + 8 + 4 + 2 + 2 = 40.
The verified baseline proportion is 60%, canary 20%, stops 10%, permission denials 5% and unknown effects 5%. These are artificial exercise numbers. They do not prove that the new method was objectively better: a proper comparison also needs content accuracy, comparable tasks, source freshness, user satisfaction and error severity.
Now a teacher changes the article’s deadline after approving an earlier version. The rollout flag may still assign the task to the canary route, but the previous publication grant may be inapplicable to the new revision. The backend should hold publication for the necessary current review. Feature eligibility cannot override version-bound human authorization.
Simulate a canary publishing call that timed out after it may have created the post. The system must check the original post ID and canonical slug before another attempt. A rollout rollback should not create a second public article when the old workflow resumes. This changed-context example separates code path assignment, user permission and actual external completion.
Return to contents or continue with Privacy and fairness of targeting decisions.
16. Privacy and fairness of targeting decisions
Flag evaluation context can include account type, locale, device, organisation or other attributes. Some are legitimate for technical compatibility; others can raise fairness and privacy questions. Use only information justified by the product’s actual purpose and applicable obligations. A model should not infer sensitive characteristics from a student’s writing style to decide which quality of instruction they receive.
Opaque stable targeting keys reduce unnecessary exposure compared with raw email addresses, but linkage is still possible if another system holds the mapping. OpenFeature explicitly cautions about personally identifying evaluation context. Review what the provider retains, what appears in logs and which staff may inspect targeting assignments.
A technically stable canary can still be unrepresentative. Users with unfamiliar accessibility settings or language needs may be missing from the initial cohort. Do not claim universal reliability from a narrow rollout. Use appropriately governed evidence and a human correction route for individuals who receive an incorrect or confusing result.
Make assignment understandable at the operational level. An authorized support person should be able to determine which version handled a task without disclosing private targeting attributes broadly. Stable task ID, flag generation and relevant source-effect receipts are more useful than a giant prompt dump containing the user’s personal history.
Return to contents or continue with Flags need lifecycle ownership and retirement.
17. Flags need lifecycle ownership and retirement
A temporary feature flag can become permanent technical debt if both old and new branches remain forever. The code may accumulate contradictory logic, stale defaults and untested combinations. Assign an owner, reason, rollout status and retirement condition when creating the flag. The team should know when the new route is safe to make the standard behaviour and which code can be removed.
Do not remove a flag’s guard while long-running tasks still depend on an older version or while a rollback path is legitimately required. A changed context-management or tool schema can make an old workflow incompatible with the new branch. Coordinate flag retirement with state migration and source-version checks rather than simply delete it from the dashboard.
Retiring a flag is a code and operational change. Remove obsolete targeting rules, clean up unneeded client logic and rerun tests for the remaining path. Preserve appropriate historical evidence of which variation completed a consequential user task. A past flagged action should not become impossible to audit because its control-plane label disappeared.
An emergency stop capability should remain independently enforceable where business risk requires it, even after an experiment flag is removed. Separating permanent security gates from temporary release flags avoids losing real permission controls during cleanup.
Return to contents or continue with Five defects a rollout test should uncover.
18. Five defects a rollout test should uncover
Failure one: the model treats a feature flag as permission to send a private document. Repair object-level and recipient-bound authorization at the protected tool. Failure two: a background worker supplies the wrong context kind, causing an unintended provider-specific variation. Repair trusted context construction and explicit validation. Failure three: each request uses a new random targeting key, making multi-step tasks switch versions. Repair stable subject identity.
Failure four: the SDK is unavailable and a fallback value enables consequential writes. Repair the declared safe default and verify actual backend behaviour under provider failure. Failure five: turning off the UI flag does not stop queued workers. Repair the actual execution gate and emergency stop sequence, then test a delayed callback attempting a protected action.
A sixth defect involves two related flags expected to select the same users when their independent bucket assignment differs. Repair with the appropriate shared targeting segment or explicit cohort contract. A seventh arises when a canary completed an external write but rollback repeats it under the baseline path. Repair stable operation identity and readback before re-execution.
Tests should include positive outcomes. A properly authorised unchanged task should still complete under the baseline and new permitted route, with its result independently verified. A system that refuses every action may pass some safety tests but fail the legitimate purpose. Use a balanced suite with explicit hard gates for truly consequential defects.
Return to contents or continue with Practical release plan for a small education service.
19. Practical release plan for a small education service
Begin with one optional agent capability, such as a new method of retrieving current Mathematics source material. Define its source, accuracy and privacy acceptance rules before assigning a cohort. Give the flag a stable name, owner, context kind, safe default and explicit stop criteria. Keep user approval and backend permission checks independent of the feature-evaluation result.
Start with synthetic tests, then an appropriate controlled cohort. Track actual task outcomes, source evidence and per-tenant correctness; do not judge the release solely by model calls or flag evaluation count. If a privacy or publication defect appears, stop new consequential effects through the real tool boundary and reconcile work already accepted.
Progressively broaden exposure only after meaningful evidence. A percentage rollout may deviate from the target share in small eligible populations and may operate at the account level rather than request level. Record which subjects and tasks actually used the variation. Compare like-for-like cohorts when making quality claims.
The durable lesson is that feature flags let teams change what software is available, not who owns a school record or which external action the user approved. A dependable agent reports the variation used, respects current authority and verifies the final outcome. Release control is valuable because it makes careful change possible, not because it can replace the underlying trust boundaries.
Return to contents.
Frequently asked questions
Does a 20% rollout guarantee exactly twenty of every hundred users?
No. Deterministic bucketing targets a population share; small samples and differing subject activity can deviate.
Can a flag grant permission to publish or email?
No. Backend authorization must still validate the exact action, recipient and applicable approval.
Why is the targeting key important?
Stable context identity supports consistent assignment and correct per-user or per-organisation scope.
What should happen if the flag provider is unavailable?
Apply an explicitly chosen safe default and trusted tool gates, rather than infer current permission from a stale value.
Does turning off a flag undo completed effects?
No. It can stop new actions under the implemented boundary, while past effects require reconciliation and correction.
Should two independent percentage flags always select the same users?
No. Provider bucketing may differ between flags; use a shared cohort mechanism when exact matching is required.
Official flag documentation
Primary documents checked 24 October 2026. LaunchDarkly and OpenFeature have specific semantics; all Cedar user groups, percentages and agent outcomes in the worked cases are fictional teaching values rather than measured product performance.
- OpenFeature — Evaluation Context: Targeting keys, scope, evaluation attributes and privacy considerations.
- OpenFeature — Flag Evaluation API: Default values, provider status and evaluation semantics.
- OpenFeature — Providers: Separation of client API from flag backend and no-provider fallback.
- LaunchDarkly — Percentage Rollouts: Deterministic bucketing, context kinds, small-cohort behaviour and cross-flag targeting.
- LaunchDarkly — Releasing Features: Percentage, progressive and guarded release methods.
- LaunchDarkly — Release Policies: Governed rollout methods and operator permissions.
- OWASP Authorization Cheat Sheet: Backend permission enforcement independent of UI flags.
Related agent engineering
Read Super Intelligence curriculum; Change Control; Graceful Degradation; Workflow Migrations; Dual Control; Agent Cancellation; Mathematics Tutorials. A released feature can make a new workflow available; it cannot replace current user authority or independent final-state verification.