feat(patterns): five primitives closing the remaining trust gaps - #4
Merged
Merged
Conversation
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
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Five new patterns close the nine taxonomy gaps that
intent-handshakeandmemory-in-motiondid not. Coverage of all 12 named gaps is now explicit and enforced in CI.No Evolution Curve schema and no
aux-auditmapping — 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.confidence-cuesbehavioral-contractmemory-policy-scopingescalation-handoffuser-aligned-objectiveEach new pattern has README,
diagram.svg, runnableexample.py, and anti-pattern.Also: diagrams for the two pre-existing patterns; those examples no longer hang on
input()in CI;check-coverage.pyinvalidate.yml.Linked Issue
None opened first. Pattern slugs are new vocabulary; CONTRIBUTING prefers an Issue. Reviewer call whether to add one retroactively.
Type
Out of scope
evolution_stagestaysschema-undefined)aux-auditTest plan
python repos/agentic-ux-patterns/check-coverage.pyexample.pyexits 0 without a TTY