Skip to main content

Problems

A problem record describes one testable operational mismatch: something the business does that has stopped matching how the business runs. It is not a complaint, a feature gap, a persona, or a market.

The test of a problem is whether it can be wrong. A record with no disconfirming_signals is a belief, not a problem, and must not be created.

No vertical scope

A problem declares no vertical_ids, no market, and no persona. It is written to be vertical-agnostic so one record stays reusable across sub-verticals that share the mismatch, instead of carrying a membership list that has to be edited every time a sub-vertical is added.

Two consequences follow, and both matter:

  1. situation is the gate. It is the only thing an audience tests a selection against. A precondition — "runs more than one plant", "the ledger sits in a separate package" — must be stated there explicitly or the problem will be mis-selected. P_00002 is the worked example: its situation requires more than one plant, which is why every single_site audience rejects it.
  2. Applicability lives downstream. An audience binding's problem_ids says where the problem applies. Nothing on this record does.

What a problem owns

FieldWhat it is for
situationThe operating conditions the mismatch needs. The selection gate
operational_mismatchWhat has stopped staying aligned
possible_consequencesTestable operational or commercial consequences
observable_signalsWhat a seller may listen for, never as proof
disconfirming_signalsWhat would show the problem is absent
evidence_requirementWhat would confirm it for a specific account
prohibited_claimsWhat a seller or generator must never say
solutionsIdsOrdered references to the solutions that address it
priorityCanonical ordering only. Audience priority lives in the binding

Audience-specific impact, framing, and call language never appear here.

Naming

One problem per file, named for its immutable ID: P_00001.md.

A persona ID and a problem ID both start with P. The underscore distinguishes them: P2 is a persona, P_00002 is a problem. They are never interchangeable.

Current records

IDMismatchPrioritySolutionsStatus
P_00001Operating process lives in software only its author can change40S_00001draft
P_00003Price and delivery date committed without confirming the producing asset55S_00003draft
P_00002Margin cannot be stated per site or per unit70S_00002draft
P_00004Channel quotes are not reconciled to the underlying projectnonedraft
P_00005Project outcomes stop at the channel partnernonedraft
P_00006Committed orders are sequenced through manual asset-by-asset judgmentS_00005draft
P_00007Quote requests require manual translation before processingS_00006draft
P_00008Schedule entry stalls the operating applicationS_00007draft
P_00009Relevant bid quantity is buried in unstructured project documentsS_00008draft
P_00010Management questions require spreadsheet reconstruction outside the operating system50S_00009draft
P_00011Recorded inventory cannot be reconciled to physical stockS_00010draft
P_00012Replacement planning lacks a verified export of linked operating recordsS_00011draft
P_00013Production quantity cannot be selected from total economic cost50nonedraft

All thirteen carry evidence_ids: []. Their supporting observations sit in inbox/, which is never a generator input, so nothing here may be asserted as fact yet. P_00004 through P_00009, P_00011, and P_00012 also have unset canonical priorities. P_00004, P_00006 through P_00011 now have draft solution references; P_00013 has approved canonical priority 50 and no solution reference yet.

Authoring

W5 in the authoring workflows, or the create-problems rule in .agents/rules/ for the interactive path from raw content.

The most common failure is two problems for one mismatch. If the mismatch is the same and only the wording differs, that difference belongs in an audience binding.