Agents

How to Change AI Project Requirements Without Losing the Thread

A requirement is not changed because it was rewritten in chat. Trace the impact, update dependent work, and block stale checks before the team moves on.

By Vladislav Zhirnov13 min read

Use this when

you need the work to hold up in real use.

Record a consequential AI project requirement change, trace its effect on tasks and checks, and stop stale work until the right owner reviews it.

Headline, When the Requirement Changes Old Work Stops, beside an operator inserting a NEW REQUIREMENT card as an amber bar blocks TASK, BUILD, and CHECK cards above an OLD RULE card.
A new requirement drops a stop bar across work that still follows the old rule.

A founder changes one rule for order cancellation. Customers should now be able to cancel only until packing starts, not until the order ships.

The change makes sense. Support has seen too many packed orders pulled apart at the last minute.

One AI worker updates the help text. Another keeps the cancel button active until shipment. The old check still expects the old rule, so it passes.

The team now has three versions of the same product promise. Each one looks reasonable on its own.

Changing the sentence in chat did not control the change. The team also had to find the work and checks that depended on the old sentence. This guide shows how to do that with one small requirement record, one change record, and one gate that can stop known stale work.

Key takeaways

  • A requirement change is controlled only after its reason, decision, owner, and downstream effects are visible.
  • Keep one stable requirement ID while preserving old, proposed, and current wording as separate versions.
  • Block known work that still follows the old rule. Warn when work has no requirement link instead of pretending it is safe.
  • Treat every link as a pointer. Fresh completion evidence still has to prove the changed result.

What is requirement change control for AI work?

Requirement change control is a way to keep one product rule and its effects together. It records what changed, why it changed, who accepted it, and which work must now be reviewed.

This starts after a requirement already exists. A source-of-truth process owns the first request. Change control begins when the team wants to replace part of that accepted truth.

Think of a paper card for the cancellation rule. The card has one permanent number. It shows the current rule, its owner, and the check that proves the rule works. Tasks and checks point back to that number.

When the rule changes, the team keeps the old version for history. It adds a change record, reviews the effects, and marks the new version as current. The permanent number stays the same.

That stable number matters because wording is easy to copy. A named record is easier to find and update. Engineers may call the record a requirement node. The saved links between records form a requirements graph. You do not need a graph database. A small table with dependable links is enough.

This control does not own the whole workflow. It does not define every task field or prove that a test passed. It answers a narrower question: what must stop or change when an accepted product rule changes?

What should one requirement record hold?

Start with fields that help someone make a decision. A large template creates busywork if nobody uses it.

The smallest useful record gives the rule one stable name, keeps its reason close, and points to the work and check that depend on it.

NASA's systems engineering guidance includes a requirement ID, rationale, owner, source links, and a verification method in its requirement metadata. A small product team can use the same logic with fewer fields.

The table below is the small version for the cancellation rule.

A link is a pointer, not proof. It gives the reviewer a place to inspect. It does not prove that every affected item is linked or that the linked item is correct.

The owner should also be current. A dead link to a former owner is a hidden blank. Confirm the owner and source before the team acts on a serious change.

The smallest useful requirement record
FieldPlain purposeCancellation example
Stable IDGive every linked record one name that does not change.REQ-CANCEL-01
Current wordingState the rule people should follow now.Customers may cancel until packing starts.
Version statusSeparate current, proposed, and old versions.Version 3 is current. Version 2 is superseded.
SourceShow where the need came from.Support review of packed-order cancellations.
OwnerName who can clarify the rule.Product lead.
RationalePreserve why the rule exists and its key assumptions.Reduce warehouse rework without trapping unprocessed orders.
Acceptance checkState the result that would satisfy the rule.Cancellation is refused after packing begins.
Affected recordsLink the known task, product area, copy, check, and release decision.Task T-42, cancel action, help text, check C-17.

How do you trace the change before work continues?

Do not erase the old sentence. Save it beside the proposed one.

A change record is a short record for the proposal and its decision. It should name the requirement, old wording, proposed wording, reason, requester, decision owner, affected records, and next action.

The old version becomes superseded after approval. That means it stays in history but is no longer the rule people should follow.

Traceability means you can walk from the changed rule to each known task and check. An impact link is the saved pointer that makes this walk possible.

Microsoft's current Azure DevOps guidance says teams should examine dependencies, current work, planned work, and the risks of accepting or rejecting a change. It also supports lightweight change-control forms. A small team does not need a committee, but it still needs a visible decision.

For the cancellation rule, the review should look like this before anyone keeps building.

Approval is not the last step. Each affected record needs an owner and a visible result. If the product lead accepts the new rule but nobody updates the task or check, the team has approved drift.

Impact review for the cancellation-rule change
Affected itemOld ruleEffectOwnerRequired updateResult
RequirementCancel until shipment.Accepted wording changes.Product leadApprove version 3 and keep version 2 in history.Open
Product taskKeep the action available before shipment.Acceptance rule is wrong.Product ownerUpdate the task and review finished work.Blocked
Cancel actionShipment state controls the button.Product behavior is wrong.Build ownerUse packing state instead.Blocked
Help textCancel before shipment.Customer promise is wrong.Content ownerReplace the sentence after approval.In review
Final checkAllows cancellation while packed.Old proof approves the wrong product.Review ownerReplace the expected result and rerun it.Blocked

How do you block work that still follows the old rule?

A drift gate is a check that can stop known stale work. It reads the current requirement, open change records, and the links to affected work.

The gate should be honest about what it knows. It can block a linked task that still follows the old rule. It cannot claim that an unlinked file is safe.

Use three outcomes.

Do not turn WARN into quiet approval. It means the map has a gap. The right response may still be to stop, but that decision belongs to the team unless the policy makes this warning a block.

A useful block explains the repair path. It should name the open change, affected record, old version, owner, and next check. A red light without a repair path just moves the confusion into another tool.

The cancellation change can clear only after the current requirement is accepted, each known task and product surface is updated, and the old check is replaced.

Change control marks the old proof stale. Completion evidence decides whether the new proof is good enough.

Three honest decisions for a requirement-change gate
VerdictMeaningRequired response
PASSRequired links point to the current rule, and no important change is open.Continue.
BLOCKAn important change is open, or a known task or check still uses the old rule.Update the record, close the decision, and rerun the gate.
WARNWork has no current requirement link, so the system cannot classify it honestly.Review and link it, or record why the link does not apply.

What happened when I tested the change gate?

I tested this rule against a frozen public version of WarpOS, my agentic operating-system project for long-running AI work.

The experiment used a disposable copy of commit 8b083d78948263c998134ac5d34947c383e17a85. It created one made-up feature, two made-up requirements, and one made-up change record. It made no network call and did not read or change live WarpOS work.

The actual frozen graph builder and gate handled three cases.

The second result has an important detail. The stale requirement was linked to its open change record, so the stale-coverage check was green. A separate rule blocked the unresolved Class C change. Recording the change made it visible. It did not make the decision complete.

The third result stayed a warning. The frozen gate found the unmatched file but did not treat it as a red block. The JSON result still reported ok: true. The article keeps that limit instead of claiming the graph prevents every kind of drift.

The experiment proves only these three synthetic control paths at the frozen commit. It does not prove universal links from intent to code or tests. It does not test production reliability, safety, concurrency, release policy, approval quality, or human judgment.

Observed decisions from the frozen change-gate fixture
CaseExact gate resultExitMeaning
Complete graph4 green, 0 yellow, 0 red0PASS
Open Class C change linked to one stale requirement3 green, 0 yellow, 1 red2BLOCK
Staged TypeScript file with no requirement mapping4 green, 1 yellow, 0 red1WARN

What did WarpOS reveal about requirements control?

WarpOS already had a serious requirements lane at that frozen commit.

Its graph builder read named stories, dependencies, acceptance criteria, and implementation paths. It built reverse links from files to requirements. It also saved hashes for three main specification files so the gate could spot a graph built from older text.

The gate checked that the graph existed, its counts matched its contents, and those saved hashes were current. It blocked an open Class C change. It also blocked a stale requirement with no open change record that named it.

Those are real controls.

The gaps are just as useful. The graph builder left feature-level test links empty. The staged-file check treated an unmatched JavaScript or TypeScript file as a warning. A marker could also allow that warning. The separate goal_verification lane could connect acceptance checks to named tests, but it applied only when a plan opted in.

The frozen result can be summarized without pretending it is complete.

The design lesson is simple. A rich map is still a claim about coverage. State what the map reads, what the gate blocks, and what remains a warning.

Frozen controls, gaps, and bounded next rules
Observed controlGapProposed small-team rule
Stable requirement and story IDsA parser can miss records outside its documented shape.Test the parser against the formats the team really uses.
Implementation paths linked to requirementsNew files outside the map warn instead of block.Review every warning and choose when policy should fail closed.
Hashes cover three core specification filesOther requirement files are outside that freshness check.Name the exact files covered by the gate.
Open Class C changes blockLower classes depend on a separate policy.Define what counts as important for your team.
Opted-in sprints can require named test linksThe lane is optional, and a pointer does not prove a pass.Require fresh proof when a change affects a final product promise.

How can your team control one change this week?

Choose one change that can alter active work or a final check. Do not begin with the whole product.

Give the current requirement a stable ID. Save the old and proposed wording. Name who requested the change and who can accept it.

List the known task, product surface, customer copy, check, and release decision that depend on the rule. Give each one an owner.

Place the gate where work really moves forward. A prompt can draft the records. It cannot stop a task, merge, or release unless a real workflow check reads them.

Plant three tests before trusting the control. A complete current graph should pass. An open important change with known stale work should block. Unmatched work should warn and name the gap.

Use the prompt below to draft the records and verdicts. A person still needs to confirm the facts, accept the product decision, and connect the gate to the real workflow.

FAQ

What is AI requirements change management?

It is the process for recording a change to a product rule, reviewing its effects, deciding it, and updating or blocking the AI-assisted work that depended on the old version.

What is a requirements graph?

It is a set of named requirement records and useful links between their sources, tasks, product areas, checks, and releases. A small team can keep it in tables or work records. It does not require a graph database.

When should a requirement change block work?

Block when an open change can alter an active task, product promise, interface, acceptance rule, final check, or release decision. Small wording fixes can stay in history when they change none of those things.

Does traceability prove the build is correct?

No. Traceability helps a reviewer find known effects. A link does not prove that the target is current, correct, complete, or passed.

Can a prompt enforce requirement change control?

No. A prompt can draft records and flag gaps. Enforcement needs a check where the real task, merge, or release decision happens. Every path that can move the work needs the same rule.

Conclusion

A requirement can change because the team learned something useful. The dangerous part is letting the old and new rules guide work at the same time.

Give the rule one stable ID. Keep the old version. Record the reason, decision, owner, affected work, and fresh check.

Then test one gate with a passing graph, an open important change, and unmatched work. The outcomes should be different: pass, block, and warn.

That is how a product team changes its mind without making every worker guess which version is real.

Sources

Next move

Have one workflow that should move faster?

Bring the process, the bottleneck, and the outcome. I can help diagnose it, design the human and AI boundary, build the smallest working MVP, and measure whether it deserves another iteration.

Start with one workflow

About the author

Vladislav Zhirnov smiling outdoors

Vladislav Zhirnov

Product and AI systems leader

Vlad helps founders, product teams, and operations leaders use AI to improve delivery, streamline work, and build useful MVPs.

Related articles

Keep going

All articles