Specira sample artefact. Rendered from the governed default template on a fictional company. Names, figures and dates are illustrative.All artefacts →
SAMPLE
seeded demo data · specira.ai
Specira Contradiction Analysis: Governed Template Rendering
Governed template rendering reference: Contradiction Analysis default v2 (draft) definition d0c67f1a…ee40
Contradiction Analysis · Project artifact SPECIRA

Contradiction Analysis: Dispatch Modernization

Meridian Field Services: instructional example, not project evidence

Draft · watermark policy: draft_only template contradiction_analysis v2 · pack: specira_default_delivery owns no domain content · owns the reconciliation
§0

What This Document Is

This artifact is unlike every other one in the package. Read this section first; without it, the findings below look like trivia.

Every other artifact in this package makes claims. The security requirements claim a session ends after a certain time. The compliance matrix claims payment-card rules do not apply. The NFR catalog claims a maintainability target. Each is written by people who know their own subject well.

This document owns no subject at all. Its only job is to ask whether all those claims can be true at the same time. It is the package's own consistency check, and it is written last, because it cannot check claims that do not exist yet.

Its raw material is the web of citations the artifacts build when they reference one another. Two signals start every investigation, and both are mechanical:

  • A citation pointing at something nobody ever wrote → a possible gap.
  • One identifier carrying two different values in two places → a possible contradiction.

Those are only starting points. The judgment (and the entire value of this document) is in deciding which of three things each finding actually is. They are not synonyms, and confusing them is expensive in both directions.

ClassificationWhat it meansWhat must happen
Contradiction The two artifacts cannot both be true. One of them is wrong. Someone changes something. This is a defect.
Tension Both are true, and they pull against each other. A real force, not a mistake. Name an owner and a revisit trigger. Do not "fix" it: there is nothing broken.
Gap A reference has outrun the work: it points at something not written yet. It closes when the missing artifact ships, or becomes an open question if it won't.

Calling a tension a contradiction manufactures work that has no correct outcome: the team argues in circles because both sides are right. Calling a contradiction a tension hides a defect behind a shrug. Getting this call right, with the reasoning shown, is what this document is for.

§1

Findings

mandatory 1 decision1 evidence rule validators: every_finding_has_plain_language_narrative_before_any_table · reader_on_ramp_defines_contradiction_tension_and_gap_before_first_finding · owns_no_domain_content · classification_carries_justification · finding_does_not_restate_owning_content
Corpus verdict 48 artifacts reconciled · 5 findings: 2 accepted tensions, 1 clean reconciliation, 1 closed gap, 1 gap promoted to a tracked open question · ZERO blocking contradictions, every finding owned. The reconciliation proves the citation graph is consistent: the corpus is internally coherent, and its tensions are recorded and owned rather than hidden.

CON-01: Does a session last twelve hours, or one? Tension

What each artifact says. The security requirements state a twelve-idle-hour session ceiling (SR-011[1]). The auth policy specifies a 60-minute inactivity timeout and a 12-hour absolute cap (session lifecycle[2]). Read quickly, they disagree about how long a dispatcher stays signed in, and the identifier-with-two-values signal fired here.

Why it is not a contradiction. They are describing two different clocks. One measures time since the user last did anything; the other measures time since sign-in, regardless of activity. Both run at once, and whichever expires first ends the session. Both statements are true. SR-011's shorthand names only one of the two bounds, so it reads as conflicting when it is merely incomplete. Nothing is wrong in the system; something is wrong in a sentence.

What would go wrong if this were not recorded. An engineer implementing SR-011 literally would build a twelve-hour idle window and quietly delete the 60-minute protection: reading one true sentence and shipping a weaker system. The auth policy is authoritative.

CON-02: Six artifacts talk about one promise Clean

What is going on. Meridian's agreement with the technicians' union requires that technicians be told when their location is being tracked. That single obligation surfaces in six artifacts: the privacy impact, the accessibility requirements, the mobile platform spec, the observability plan, the localization spec, and the NFR catalog.

Why it was investigated. One promise appearing in six places is exactly the shape of a problem; it is usually six copies drifting apart, where fixing the promise in one place silently leaves five stale versions behind.

What the check found. It is not that. Every one of the six links to the single owning statement (monitoring notice[3]) rather than restating it. There is one promise with six readers: a correctly modelled shared dependency. Recorded anyway, because the next reviewer will notice six references and ask this same question, and this is the answer.

GAP-01: A citation that outran the work Gap · closed

Earlier artifacts cited a data-protection impact assessment before anyone had written one. The dangling-citation signal caught it. The compliance cluster subsequently shipped it (DPIA[3]), which is exactly what a healthy gap does: it closes on its own as the planned work lands. Closed.

GAP-02: A target with no owner Gap · open

What each artifact says. The NFR catalog commits to a maintainability target for bringing a new dispatch hub online (NFR-P3[4]). No design artifact says how that target will be met, or who is responsible for meeting it.

Why this one is different from GAP-01. GAP-01 closed because scheduled work was already going to produce the missing artifact. Here, nothing on the plan produces the missing owner, so left alone, this gap stays open forever and the commitment quietly becomes decorative. That is why it is promoted rather than merely noted (§2).

CON-03: "We handle no card data," and here is our payment design Tension

What each artifact says. The compliance matrix excludes payment-card standards from the pilot (exclusions[5]). The payment spec designs a billing surface (cardholder-data scope[6]). On its face: we are not in scope for card rules, and also here is our card-handling design.

Why it is not a contradiction. The resolution is chronology. The pilot genuinely takes zero cardholder data; the exclusion is accurate today. The billing surface is phase two, designed ahead precisely because scope minimization is decided before the architecture rather than backfilled to justify whatever got built. Both statements are true about different moments.

Why it stays recorded. It is a legitimate, accepted tension with a revisit trigger, because the day the portal activates, the exclusion stops being accurate, and someone must notice. That someone is named in §2.

The findings, indexed

FindingArtifacts in tensionClaim at issueClassification
CON-01 security (SR-011)[1] · auth policy[2] Session duration: one shorthand bound vs two distinct clocks Tension
CON-02 privacy impact[3] + five others The union monitoring-notice obligation, referenced six times Clean
GAP-01 privacy impact (DPIA)[3] A forward-citation to an unwritten assessment Gap · closed
GAP-02 NFR catalog (NFR-P3)[4] A maintainability target with no owning design artifact Gap · open
CON-03 compliance matrix[5] · payment spec[6] Payment-card scope: pilot exclusion vs phase-two design Tension

Note what this document did not do. It never restated the auth policy's rules, or re-decided the payment scope, or specified the missing maintainability owner. Each owning artifact keeps its content; this one only names the claim, cites it, and rules on whether the set holds together. The moment this artifact starts deciding, it becomes another claimant, and there is nothing left to check it.

§2

Resolution Status

mandatory 1 decision1 evidence rule validators: every_finding_has_owner · unowned_contradiction_is_the_failure_state · tension_accepted_with_revisit_trigger · gap_closed_or_promoted_to_open_question · corpus_verdict_states_counts_and_blocking

There is exactly one failure state in this artifact, and it is not "we found contradictions." It is a finding with nobody's name on it. A recorded, owned tension is a healthy corpus; an unowned one is a problem waiting to be rediscovered by someone with less context and less time.

FindingOwnerDispositionResolution path · revisit trigger
CON-01 E. Sandoval Accepted tension Align SR-011's shorthand to the auth policy's two-clock wording at the next security regeneration · revisit at the next SR revision
CON-02 N. Duval Reconciled · clean Verified Aug 8; the six references correctly share one obligation. No change needed; recorded so the shared dependency is not re-flagged every review
GAP-01 N. Duval Closed The cited DPIA shipped with the compliance cluster
GAP-02 E. Sandoval Promoted Raised as an open question and a risk-register watch (RSK-018[7]), due Sep 30, because this gap will not close on its own
CON-03 N. Duval Accepted tension Revisit at the portal activation decision, the moment the pilot exclusion stops being accurate

Reading the verdict. Five findings sounds alarming and is not. Two are tensions that should exist and are now owned. One is a clean result recorded to save the next reviewer the investigation. One gap closed on schedule. One gap will not close by itself, so it was handed to a named person with a date and put where the sponsor already looks.

Nothing blocks. A blocking finding would be an unowned contradiction, or an accepted tension whose revisit trigger has already fired without anyone acting. Neither exists here. That is the claim this document exists to make, and it is checkable, because every finding above shows its reasoning rather than asserting a verdict.

§3

Open Questions

mandatory1 decision
QuestionOwnerAnswer byBlocks
GAP-02 promoted: which design artifact will own the hub-onboarding maintainability target the NFR catalog commits to (NFR-P3[4])? E. Sandoval Sep 30 The maintainability sign-off, not the pilot ship
Accepted-tension revisit triggers, restated so they are not lost: CON-01 at the next security regeneration; CON-03 at portal activation E. Sandoval; N. Duval At each trigger Nothing; each resolves as the cited artifacts evolve
Refs

References & Package Contents

In the Specira workspace

specira [1] Security requirements: SR-011, the session-idle ceiling shorthand app.specira.ai/projects/dispatch-modernization/artifacts/security-requirements#sr-011
specira [2] Auth & authorization policy: the session lifecycle; the two clocks (authoritative) app.specira.ai/projects/dispatch-modernization/artifacts/auth-authz-policy#session-lifecycle
specira [3] Privacy impact: the union monitoring-notice obligation (the single owning statement); the DPIA app.specira.ai/projects/dispatch-modernization/artifacts/privacy-impact
specira [4] NFR catalog: NFR-P3, the hub-onboarding maintainability target app.specira.ai/projects/dispatch-modernization/artifacts/nfr-catalog#nfr-p3
specira [5] Compliance matrix: the payment-card exclusion for the pilot app.specira.ai/projects/dispatch-modernization/artifacts/compliance-matrix#exclusions
specira [6] Payment security & PCI spec: the cardholder-data scope; the phase-two portal surface app.specira.ai/projects/dispatch-modernization/artifacts/payment-security-pci#cardholder-scope
specira [7] Risk register: RSK-018, the maintainability-gap watch app.specira.ai/projects/dispatch-modernization/artifacts/risk-register#rsk-018
Generated by Specira · template contradiction_analysis v2 (draft) · pack specira_default_delivery lineage d0c67f1a…ee40 · page 1 of 5