Documentation
How a dispute stays bounded
PatchScope v1 is a scope classifier for exactly two parties. The accepted card is the contract of the work. The case is one request. The decision cites ids from the frozen packet.
Scope card
A card has a title, the broken behavior, the expected behavior, the environment, a baseline version, included clauses (S-*), excluded clauses (X-*), acceptance criteria (A-*), and optional protected behaviors (P-*). At least one S clause and one A clause are required. Ids cannot collide. A protected clause also needs a scenario id such as guest-eu-vat.
Acceptance
Proposing creates version 1 and a canonical SHA-256. Each party accepts that exact version and hash. The card becomes active only after both acceptances match. A revision keeps history, bumps the version, and deletes prior acceptances. An accepted card cannot be edited. Reject it while it is still a proposal, or let the deadline expire.
One request
A case holds one narrative plus one to four clause citations from the accepted card. Three or more numbered demands are rejected as non-atomic. Statements are append-only. Evidence is one of baseline report, post-patch report, test report, or public excerpt. A public excerpt is labeled unverified. Acknowledging a hash means “I saw this exact text,” not “I verified it.”
Freeze
Early freeze requires both parties to approve the current packet hash. That hash includes the accepted agreement hash, so an approval cannot be reused against a different card. The frozen packet keeps a copy of the card. Later decisions read that copy. Any new statement, evidence item, or acknowledgement clears early approvals. A deadline freeze is separate and uses the workspace clock in this preview. On a deployed contract, time must come from the GenLayer transaction context. If that clock is missing, the contract fails closed.
Decision
The only classifications are IN_SCOPE, CHANGE_REQUEST, and INSUFFICIENT_EVIDENCE. Protected behavior cannot be treated as a regression from keywords. It needs a P clause, a baseline report, a post-patch report, the same scenario, a compatible environment, and declared pre and post states. If those are missing, the reason is CAUSATION_NOT_ESTABLISHED. This preview runs that gate locally and says so on the decision. It is not a GenLayer consensus result.
Review and change orders
One review may cite new evidence or an overlooked clause that the original decision did not reference. The original packet and decision stay put. If the review claims new evidence and none is attached, it cannot be closed while the review window is still open. After the window, an empty review is not admissible. Otherwise the review is upheld or revised. Revised means the classification actually changed. A change order is a new agreement. It opens only after the effective result is CHANGE_REQUEST, and it does not mutate the prior card.
What this preview stores
The workspace in this browser holds drafts, agreements, cases, team membership, and in-app notice preferences. Team membership does not authorize a chain signature. No email address is collected, because there is no mail delivery path. Chain reads appear on the diagnostics page only when an RPC and contract address are configured. Nothing here is indexed from the chain by a private backend.