Skip to content

feat(patterns): five primitives closing the remaining trust gaps - #4

Merged
cursor[bot] merged 1 commit into
mainfrom
claude/repo-visibility-feedback-7zejih
Sep 3, 2026
Merged

feat(patterns): five primitives closing the remaining trust gaps#4
cursor[bot] merged 1 commit into
mainfrom
claude/repo-visibility-feedback-7zejih

Conversation

@RevenuePuzzles

Copy link
Copy Markdown
Contributor

Five new patterns close the nine taxonomy gaps that intent-handshake and memory-in-motion did not. Coverage of all 12 named gaps is now explicit and enforced in CI.

No Evolution Curve schema and no aux-audit mapping — the audit still grades a spec, not an implementation.

What this PR does

Without the Beautiful UI article, the “five primitives” are derived from trust-gap-taxonomy.yaml: 12 gaps, 3 already closed, 5 patterns for the remaining 9.

Pattern Closes Stage
confidence-cues hallucination, confident_nonsense T01, T03
behavioral-contract silent_degradation, inconsistent_output T01
memory-policy-scoping context_leak T02
escalation-handoff refusal_when_escalation_needed T03
user-aligned-objective metric_over_user, incentive_misalignment, loyalty_leak T04

Each new pattern has README, diagram.svg, runnable example.py, and anti-pattern.

Also: diagrams for the two pre-existing patterns; those examples no longer hang on input() in CI; check-coverage.py in validate.yml.

Linked Issue

None opened first. Pattern slugs are new vocabulary; CONTRIBUTING prefers an Issue. Reviewer call whether to add one retroactively.

Type

  • New pattern (diagram, runnable example, anti-pattern)

Out of scope

  • Evolution Curve schema (evolution_stage stays schema-undefined)
  • Wiring patterns into aux-audit
  • npm / Marketplace

Test plan

  • python repos/agentic-ux-patterns/check-coverage.py
  • each example.py exits 0 without a TTY
  • lychee + yaml jobs on this branch
Open in Web Open in Cursor 

Without the article, the five primitives are derivable rather than
guessable. The taxonomy names 12 gaps; intent-handshake and
memory-in-motion close 3. Exactly five patterns close the other 9, and
the patterns repo's own rule #1 is "every pattern closes a named gap" —
so any other five would have been inventions.

  confidence-cues         hallucination, confident_nonsense    T01, T03
  behavioral-contract     silent_degradation, inconsistent_output   T01
  memory-policy-scoping   context_leak                              T02
  escalation-handoff      refusal_when_escalation_needed            T03
  user-aligned-objective  metric_over_user, incentive_misalignment,
                          loyalty_leak                              T04

Coverage is now 12/12 across all four trust stages.

Each ships the four files CONTRIBUTING requires, and every example.py is
runnable: python patterns/<slug>/example.py. The anti-patterns are the
load-bearing half — each failure mode ships in real products precisely
because it resembles the pattern. Hedging every sentence looks like
calibration; a snapshot test looks like a contract; a user_id filter
looks like scoping.

Two pre-existing defects fixed along the way, both found by writing the
check rather than by reading:

- Neither existing pattern had diagram.svg, though the template requires
  it and CONTRIBUTING says a PR is rejected without it. All seven now
  have one, light/dark aware.
- Neither existing example could run unattended — both blocked on
  input(), so "runnable" was unverifiable. They now prompt at a terminal
  and replay a script when there is no TTY. Signatures are unchanged.

check-coverage.py executes both claims (every gap closed, every pattern
complete, every example exits 0) and runs in CI, so the README's
coverage claim cannot quietly stop being true.

Not wired into aux-audit: the audit reads a spec, not an implementation.
These patterns are what a reader applies after seeing a score, and
claiming otherwise would be a mapping that does not exist.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MhpqWEvwKp7NrmJfdXYq4M
@RevenuePuzzles
RevenuePuzzles marked this pull request as ready for review September 3, 2026 18:44
@cursor
cursor Bot merged commit 5841ea4 into main Sep 3, 2026
4 checks passed
@cursor
cursor Bot deleted the claude/repo-visibility-feedback-7zejih branch September 3, 2026 18:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants