Skip to main content

Requirements Lifecycle

Every requirement in NirmIQ follows a structured lifecycle from initial creation through verification. This lifecycle provides audit traceability, ensures quality gates are respected, and connects requirements to the implementation workflow.

Lifecycle States

NirmIQ implements an industry-standard lifecycle based on ISO/IEC/IEEE 29148 and INCOSE best practices.

                     REQUIREMENT LIFECYCLE

┌────────┐ ┌───────────┐ ┌──────────┐ ┌──────────┐
│ Draft │───→│ In Review │───→│ Approved │───→│ Accepted │
└────────┘ └───────────┘ └──────────┘ └──────────┘
│ │ │
│ │ ▼
│ │ ┌─────────────┐
│ │ │ Implemented │
│ │ └─────────────┘
│ │ │
│ │ ▼
│ │ ┌──────────┐
│ │ │ Verified │
│ │ └──────────┘
│ │
▼ ▼
┌──────────┐ ┌──────────┐ ┌────────────┐
│ Rejected │ │ Deferred │ │ Deprecated │
└──────────┘ └──────────┘ └────────────┘

State Descriptions

StatusMeaningColorWho Transitions
DraftNewly created, not yet reviewedGrayAnyone (entry state)
In ReviewUnder team review for technical soundnessBlueAuthor submits
ApprovedTechnically sound, agreed upon by reviewersPurpleReviewer/Lead approves
AcceptedReady for implementation — triggers work itemsGreenPM/Stakeholder accepts
ImplementedCode written and mergedGreenDeveloper marks complete
VerifiedTests pass, requirement confirmed satisfiedGreenQA/Tester verifies
RejectedNot valid, will not be implementedRedAnyone with authority
DeferredValid requirement, but not for this cycleOrangePM defers
DeprecatedWas valid, no longer applies (superseded)RedLead deprecates

State Transitions

Not every transition is valid. NirmIQ enforces a state machine:

FromAllowed Transitions
DraftIn Review, Rejected, Deferred
In ReviewApproved, Rejected, Deferred, Draft (return for rework)
ApprovedAccepted, Rejected, Deferred, In Review (re-review)
AcceptedImplemented, Deferred
ImplementedVerified, Accepted (rework needed)
VerifiedDeprecated (if superseded later)
RejectedDraft (if reconsidered)
DeferredDraft (if brought back into scope)
Deprecated(terminal state)
Why "Approved" AND "Accepted"?

Approved means technically correct — the requirement is well-written, testable, and makes sense. Accepted means committed to implementation — the team has decided to build it NOW. A requirement can be Approved but Deferred (technically valid, but not this release). The distinction matters for planning and audit.

The Critical Gate: Accepted

"Accepted" is the trigger for implementation. When a requirement reaches Accepted status:

  1. Audit Trail: The system records WHO accepted it, WHEN, and any rationale provided
  2. Work Item Created: A work item is automatically created in NirmIQ to track implementation
  3. External Sync: If Jira, Azure DevOps, or GitHub Issues are connected, the work item is optionally pushed there
  4. Dashboard Updates: The project health score and progress metrics update

This is a deliberate gate — not every Approved requirement needs immediate implementation. The Accepted transition is a conscious commitment.

Acceptance Audit Record

Every status transition is recorded, but Accepted transitions capture additional detail:

  • User: Who accepted the requirement (user ID and name)
  • Timestamp: Exact time of acceptance
  • Rationale: Optional note explaining why this is being committed to
  • Version: The requirement version at time of acceptance

This audit trail is essential for compliance frameworks (ISO 26262, DO-178C, IEC 62304) where evidence of deliberate review and acceptance is required.

Requirement Sources

Requirements enter NirmIQ through multiple paths. Each requirement tracks its origin for traceability:

SourceDescriptionTypical Entry Status
ManualUser creates directly in NirmIQDraft
Code IntelligenceAI generates from codebase scanDraft (from finalization)
Knowledge BaseAI suggests from lessons learned/standardsDraft (from finalization)
FMEA-DerivedRisk analysis reveals missing requirementDraft
Jira ImportPulled from Jira issuesDraft
File ImportCSV, ReqIF, or Excel uploadDraft
TemplateFrom industry or sample templateDraft
AI AnalysisAI suggests improvements to existing requirementsDraft

Source Traceability

The requirement's source is permanently recorded and visible in the Details panel. For Code Intelligence and Knowledge Base sources, the system also tracks:

  • Source file: Which code file generated the requirement
  • Source document: Which knowledge base entry influenced the suggestion
  • Confidence score: AI's confidence in the suggestion (0-100%)
  • AI model: Which AI provider was used

This traceability is critical for the Knowledge Base Flywheel — the system tracks which knowledge base documents led to which requirements, allowing teams to measure the value of their documented lessons.

The Implementation Pipeline

Once a requirement is Accepted, NirmIQ creates a work item and the implementation pipeline begins:

Requirement reaches "Accepted"

├── AUDIT: Record who accepted, when, rationale

├── AUTO: Create Work Item in NirmIQ
│ status: 'todo'
│ source: inherited from requirement source
│ priority: inherited from requirement priority

├── OPTIONAL: Push to external tool (user configures)
│ ├── Jira → Create issue with [REQ-ID] prefix
│ ├── Azure DevOps → Create work item
│ ├── GitHub Issues → Create issue with labels
│ └── Store external ID for bidirectional sync


Developer implements (using any tool)

├── NirmIQ work item tracks progress
│ todo → in_progress → in_review → done

├── Requirement status advances
│ Accepted → Implemented (when work item moves to in_review)
│ Implemented → Verified (when linked tests pass)


Verification

├── Test cases linked to the requirement are executed
├── Code Intelligence re-scan detects drift
├── Requirement marked Verified when all evidence complete


Learn (if issues found)

├── Add Lesson Learned to Knowledge Base
├── Next AI scan incorporates the lesson
└── Flywheel continues

Two Paths: Internal vs External Implementation

Path A: Track in NirmIQ Only

The work item lives in NirmIQ. The developer uses any tool to write code (Claude, Copilot, Cursor, VS Code, etc.) and updates the work item status manually or through Code Intelligence re-scans.

Path B: Push to External Tool + Track in NirmIQ

NirmIQ always creates its own work item (for health scores and traceability), AND pushes to the team's project management tool. Status syncs bidirectionally:

  • Jira issue moves to "In Progress" → NirmIQ work item updates
  • NirmIQ work item marked "Done" → Jira issue transitions to "Done"
  • External assignee changes sync back to NirmIQ

Lifecycle in the Graph View

The Graph tab in the requirements detail panel visualizes requirements with color-coded status indicators:

ColorStatuses
GrayDraft, In Review
PurpleApproved
GreenAccepted, Implemented, Verified
RedRejected, Deprecated
OrangeDeferred

This makes it easy to see at a glance which requirements are committed, which are in progress, and which have been deferred or rejected.

Best Practices

1. Don't Skip Gates

Resist the temptation to move requirements directly from Draft to Accepted. The review gates exist to catch issues early:

  • In Review forces a second pair of eyes
  • Approved confirms technical soundness
  • Accepted confirms business commitment

2. Always Provide Rationale on Acceptance

When accepting a requirement, add a note explaining the context:

✅ Good: "Accepted for Sprint 14. Critical for SOC2 compliance deadline March 1."
✅ Good: "Accepted per design review 2024-02-15. All stakeholders agreed."
❌ Bad: "" (empty — no context for audit)

3. Use Deferred, Not Rejected, for "Not Now"

Rejected means the requirement is invalid or wrong. Deferred means it's valid but not prioritized for this cycle. The distinction matters when revisiting scope later.

A requirement should only reach Verified when there is objective evidence:

  • Linked test cases that pass
  • Code Intelligence re-scan shows no drift
  • Review by someone other than the implementer

5. Track Source for AI-Generated Requirements

When AI generates requirements (from Code Intelligence or Knowledge Base), the source traceability helps the team:

  • Distinguish AI suggestions from manually-written requirements
  • Evaluate AI quality over time (acceptance rate)
  • Trace back to the code file or lesson that spawned the requirement
  • Measure knowledge base ROI (which lessons generate the most accepted requirements)

What's Next?