UX3 Product Design Harness
Machine-enforced product judgment across the whole loop: direction, build, launch, and user feedback.
Read In / Work In
Read in: English | Traditional Chinese | Simplified Chinese | Japanese | Korean | Spanish | French | German
Work in: copy one invocation into the agent session.
Use UX3 Product Design Harness for this repository.
Working language: en.
Review this product decision before implementation: <decision>.
Supported working-language lines: Working language: en.,
Working language: zh-TW., Working language: zh-CN.,
Working language: ja., Working language: ko.,
Working language: es., Working language: fr.,
Working language: de.
UX3 Product Design Harness is the judgment layer for the whole product loop.
It gates the first "why build this?", stays on through spec, build, launch,
user testing, and feedback digestion, and returns one machine-checkable
verdict: continue, verify, or stop_reframe.
It is framework-agnostic: prompts, JSON Schemas, knowledge files, and agent
definitions that plug into any agent runtime. There is no server and no SDK.
The only dependency is jsonschema, used by scripts/check_review.py and
scripts/validate.py to validate review outputs and repository contracts.
The repository has two entrances to one knowledge system. Humans get the
project site and handbook; agents install the complete skill bundle at
skills/product-design-harness/, then use llms.txt, prompts,
schemas, rules, and golden examples. Both entrances use the same UX3 Decision
Kernel and the same canonical review contract.
Community-built strategic design knowledge
Most design repositories improve a prototype, visual, or animation. UX3 works at the strategic level: what should be built, for whom, based on what evidence, under which business conditions, and with which human accountable for the trade-off.
The community can contribute field experience, counterexamples, pressure cases, decision rules, contracts, integrations, and translations. The preferred contribution is not another opinion; it is a decision with User Flow, Evidence Flow, Business Flow, Designer-in-the-Loop judgment, and an observed outcome.
- Submit field evidence
- Propose a decision rule
- Read the contribution contract
- Understand decision rights
Where It Sits
Coding harnesses made agents reliable executors: tests, types, and CI guard the how. Nothing guarded the why or the after. This harness is not a phase before building; it is the judgment layer that runs across the loop.
Why Install
The decision rules are machine-enforced, not prose. A malformed review, a combined verdict that contradicts its lane verdicts, an execution boundary whose may_do repeats a must_not_do entry, or a verdict that outruns its evidence tier fails validation instead of shipping. Every claim below is verifiable inside this repository:
| Claim | Verify at |
|---|---|
One canonical machine contract for every review mode: schemas/review-result.schema.json (JSON Schema draft 2020-12, one of 16 schemas in the repo). |
schemas/review-result.schema.json |
| Working-language setup is explicit while canonical identifiers remain English. | schemas/session-config.schema.json |
| Canonical UX3 definitions and rule IDs are loaded from machine files. | knowledge/ontology.json, knowledge/rules.json |
21 decision rule cards operationalize the current kernel; six newly distilled cards carry chapter-level provenance, including ux3.rule.human_agent_interaction and ux3.rule.motivation_ethics. |
knowledge/rules.json, knowledge/source-chapters.json, docs/DECISION-RULES.md |
| JSON Schema enforces the output shape and verdict-specific conditional fields. | schemas/review-result.schema.json, tests/test_contracts.py |
Verdict-specific fields are mutually exclusive: a continue result cannot carry a reframed_question. |
tests/test_contracts.py |
| Challenge-round fields are forbidden in independent rounds and required in challenge rounds. | schemas/reviewer-verdict.schema.json |
Every stop_reframe lane verdict must carry a machine-readable stop_reason_class. |
schemas/reviewer-verdict.schema.json |
| actor_boundary.target_population is the single canonical target population source in reviews and context packs. | schemas/actor-boundary.schema.json, schemas/review-result.schema.json, schemas/context-pack.schema.json |
scripts/check_review.py is the required canonical review validator; it applies the worst-verdict, weakest-flow, and headline-tier semantic checks after JSON Schema validation. |
scripts/check_review.py, docs/CONTRACTS.md, tests/test_contracts.py |
Evidence receipts require provenance, freshness, a counter-signal, and a tier from t0 to t4. |
schemas/evidence.schema.json |
| Once a review declares a human-owned decision, the trail is enforced in both directions: decision record id, accountable owner, and reversal conditions. The declaration itself is the reviewing agent's call and cannot be forced by schema. | schemas/human-decision.schema.json, schemas/review-result.schema.json |
Verdicts are bounded by evidence tier: a t0 headline tier forces stop_reframe, and t1 can never return continue. |
schemas/review-result.schema.json, tests/test_semantic_guards.py |
| A council review with a vacuous challenge round (every challenge objecting to nothing) fails validation. | scripts/check_review.py, tests/test_semantic_guards.py |
| Golden examples for all three modes validate against the canonical contract. | examples/quick-gate-review.json, examples/standard-gate-review.json, examples/ux3-council-review.json |
What The Harness Cannot Enforce
Honesty about the boundary, because evaluating agents will test it:
- It validates the shape and internal consistency of evidence receipts, not their truth. A fabricated receipt with plausible fields passes.
- It enforces the human-decision trail only after a review declares a
decision human-owned. An agent that misclassifies a human-owned case as
noneis not caught by schema. - It requires three lane reviews but cannot prove they were performed independently.
Everything the harness does enforce is listed above and covered by tests.
UX3 Model
Three flows are reviewed separately and interpreted together:
| Flow | Definition |
|---|---|
| User Flow | Who the product is for, who is affected, what they are trying to accomplish, and what cost, friction, risk, or loss of control exists now. |
| Evidence Flow | What source, signal, interpretation, counter-signal, and decision impact support the next step. |
| Business Flow | Who creates value, receives value, pays, decides, operates, absorbs risk, and whether the exchange can stay viable and legitimate. |
UX3 is strongest at four intersections:
| Intersection | Canonical id | Meaning |
|---|---|---|
| User Flow + Evidence Flow | user_evidence |
Situated Understanding: separate opinion, behavior, workaround, simulation, and stronger proof still needed. |
| Evidence Flow + Business Flow | evidence_business |
Viable Learning: connect signals to business consequence, hidden cost, retention, and failure criteria. |
| User Flow + Business Flow | user_business |
Sustainable Value Exchange: compare user gain, user cost, business capture, and fairness. |
| Center | ux3_decision_kernel |
UX3 Decision Kernel: Validate, Reduce, Gate, and Emit one bounded result. |
The UX3 Decision Kernel does not average lane scores or invent a fourth opinion. It validates contracts, reduces to the worst verdict, gates uncertainty and human-owned calls, then emits the canonical review result. Human-owned calls are recorded; they are not converted into an evidence score.
Review Modes
Start every review at prompts/start-review.md; it selects the smallest
responsible mode.
| Mode | Use when |
|---|---|
| Quick Gate | Small, reversible, low-risk change. |
| Standard Gate | New feature, workflow, or experiment. |
| UX3 Council | High uncertainty, external evidence, meaningful risk, multiple reviewers, or a human-owned trade-off. |
Six gates frame the process: Stage, User Flow, Evidence Flow, Business Flow,
Council, and Human Judgment. See docs/OPERATING-PROTOCOL.md.
Install, Verify, And Handoff
Install the Skill directly into supported agent environments:
npx skills add cis2042/product-design-harness -g -y
To inspect and verify the complete repository locally:
git clone <repo-url> product-design-harness
cd product-design-harness
python3 -m venv .venv
.venv/bin/python -m pip install -r requirements-dev.txt
.venv/bin/python -m unittest discover -s tests
.venv/bin/python scripts/validate.py
.venv/bin/python scripts/check_review.py examples/quick-gate-review.json
Preview the website and UTF-8 documentation with the repository server:
.venv/bin/python scripts/serve.py
Then wire it into your agent:
- Load
skills/product-design-harness/SKILL.mdas the harness skill or system instruction. Itsresources/directory must stay beside it. - Load
resources/schemas/session-config.schema.json,resources/knowledge/ontology.json,resources/knowledge/rules.json, thenresources/prompts/start-review.md. - Validate every review output with
resources/scripts/check_review.py; JSON Schema alone checks shape and conditionals, whilecheck_review.pyalso checks the weakest-flow and headline-tier rules. - Compare your first outputs to
resources/examples/quick-gate-review.json,resources/examples/standard-gate-review.json, andresources/examples/ux3-council-review.json.
Live-coding boundary: review and implementation are separate. verify
authorizes only the exact proof step. continue plus a valid
templates/context-pack.md authorizes implementation inside the named
execution boundary. stop_reframe blocks implementation and returns a better
product question.
Working Language
Reading language and working language are separate choices. working_language
controls human-readable prompts, questions, explanations, summaries, and
free-text output fields.
It does not translate JSON property names, enum values, rule IDs, schema IDs,
file paths, evidence IDs, or canonical verdicts: continue, verify,
stop_reframe.
Session configuration keeps machine identifiers English:
{
"working_language": "en",
"canonical_identifiers": "en",
"fallback_language": "en"
}
If a requested working language is unsupported, use English and state the fallback. If a translation conflicts with the English kernel, the English rule controls and the translation is marked for correction.
Canonical Contracts
| Path | Purpose |
|---|---|
skills/product-design-harness/SKILL.md |
Installable skill entrypoint; includes all runtime resources. |
llms.txt |
Machine-readable repository index. |
schemas/session-config.schema.json |
Working-language contract; working_language, canonical_identifiers, and fallback_language. |
schemas/review-result.schema.json |
Canonical review result for continue, verify, and stop_reframe. |
knowledge/ontology.json |
Canonical UX3 flows, intersections, actors, stakeholders, and human judgment terms. |
knowledge/rules.json |
21 canonical rule cards, including ux3.rule.actor_boundary, with trigger, evidence, counter-signal, human boundary, stop condition, and output; newly distilled cards also cite source chapters. |
knowledge/source-chapters.json |
Chapter manifest and source checksum for newly distilled curriculum provenance. |
prompts/start-review.md |
Review entry prompt and mode selector. |
templates/context-pack.md |
Handoff artifact created only after continue. |
docs/HARNESS.md |
Complete English handbook. |
docs/UX3.md |
UX3 model, intersections, and the UX3 Decision Kernel. |
docs/ADOPTION.md |
Install and integration guide for agent teams. |
docs/CONTRACTS.md |
Output fields and weakest-flow logic. |
press-kit/PRESS-KIT.md |
Social cards and talking points for anyone presenting the harness. |
UX3 Product Design Harness does not promise good outcomes. It enforces that every build decision states its evidence, its weakest flow, its trade-offs, and its accountable human owner before execution starts.
No comments yet
Be the first to share your take.