trust-issues
Skill1 starsChanged 19 days agoMITView on GitHub
First-principles redesign. Apply when a new requirement does not fit the current design, when two or more fixes built on the same assumption have failed, when a design keeps growing special cases, or when asked to rethink or redesign. Separate what must be true from what is only inherited, then rebuild the design from what must be true.
2 other projects use a version of this.
Adopted by
Most recently taken up by
- zuhairadnansutrisno2502-lab/trust-issuestheir own version, first seen Nov 1, 2026
- howshannon/trust-issuestheir own version, first seen Jul 13, 2026
Other versions2 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 2
- howshannon/trust-issues★ 5same name
- zuhairadnansutrisno2502-lab/trust-issues★ 0same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository17 other files it gives its agents.
- broooooSkill
- did-we-break-itSkill
- finish-the-prSkill
- fix-it-properlySkill
- just-tell-meSkill
- lets-build-pyramidsSkill
- next-time-fasterSkill
- no-added-commentsSkill
- onmywatchSkill
- plan-the-big-oneSkill
- sharpenSkill
- show-meSkill
- statechartSkill
- talk-is-cheapSkill
- trust-me-broSkill
- walk-me-throughSkill
- you-get-meSkill
The file
Show its rules and text
We split this skill into the rules it gives an agent
13 rules. About 0 are common, 12 are distinctive, and 1 is very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈12
Distinctive · estimate
This author's own choices. Worth a look.
1
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 22
Do not apply it to a small, local change that the current design already handles cleanly.
- Distinctive: line 28
List the assumptions: Write down everything the current design takes for granted: data shapes, who owns what, ordering, limits, "this is …
- Distinctive: line 30
Sort each assumption: Put each one in exactly one bucket:
- Distinctive: line 42
Rebuild from the facts: Ask: "Knowing only the goal and the facts, what is the simplest design that works?"
- Distinctive: line 43
Start from the data shape and who owns it.
- Distinctive: line 44
Put each decision in the lowest layer that owns it.
- Distinctive: line 45
When a standard or a spec defines the behaviour, name the data in its terms before you sketch.
- Very specific: line 47
If the redesign needs scale numbers or research, hand that part to /lets-build-pyramids.
- Distinctive: line 49
Compare with what exists: Keep every part of the current design that already matches the new one.
- Distinctive: line 55
Before writing code, show the reader:
- Distinctive: line 70
Do not write code before the facts and the dropped assumptions are written down.
- Distinctive: line 71
Do not call something a fact without evidence.
- Distinctive: line 72
If every assumption turns out to be a fact, the current design is right.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
trust-issues
Reason from what must be true, not from what already exists.
Design to rethink: $ARGUMENTS. If that is empty, the one in the conversation.
Why: An existing design carries the assumptions of the day it was built. Patching it keeps those assumptions, even after they stop being true. Each patch makes the next one harder, and the design ends up held together by special cases.
When to apply
- A new requirement only fits through a flag, a special case or a second code path.
- Two or more fixes have failed and they share one assumption.
- The same kind of bug keeps coming back in different places.
- You are asked to rethink, redesign or "do it properly".
Do not apply it to a small, local change that the current design already handles cleanly.
Pattern
- State the goal as an outcome. One sentence about what the user or caller needs to be true, not the feature or the code. "A support agent sees every open ticket assigned to them" is a goal. "Add a filter to the list endpoint" is a solution.
- List the assumptions. Write down everything the current design takes for granted: data shapes, who owns what, ordering, limits, "this is always called once", "there is one tenant". Read every file and doc the design touches, whole, so the list is complete.
Sort each assumption. Put each one in exactly one bucket:
- Fact: true no matter how you build it. Physics, the data that exists, a hard limit you measured.
- Owned elsewhere: a contract, API or rule another team or system owns. Treat it as fixed for this design, and name who could change it.
- Choice: someone decided it, and it could be decided again.
- Habit: nobody decided it; it is only how it was done before.
An assumption is a fact only if you can show the evidence: the code, the data, the doc, a measurement. If you cannot, it is a choice.
Before you drop a choice or habit, find out why it exists (Chesterton's fence):
git log -S,git blame, the PR or ticket, a comment. Cite what you find. If the reason still holds, it is a fact. If you find no reason, say so. Dropping a choice is a decision: list the drops for the user to confirm, do not drop them silently.- Attack the premise. If fixes have failed, write the one assumption they all shared as one sentence. Test it with a check you can rerun (a query, a script, a log count) before you write another fix. If it is false, stop fixing and redesign. If it holds, the premise is not the cause: look elsewhere and keep the check as evidence. Remove the cause instead of compensating for it.
- Rebuild from the facts. Ask: "Knowing only the goal and the facts, what is the simplest design that works?"
- Start from the data shape and who owns it. Logic follows from that.
- Put each decision in the lowest layer that owns it.
- When a standard or a spec defines the behaviour, name the data in its terms before you sketch. A design that needs words the standard does not use has usually kept an old assumption.
- Sketch two or three designs that differ in data shape or ownership. A variant of the same shape is not an alternative. Pick one and say in one line why each other lost.
- If the redesign needs scale numbers or research, hand that part to
/lets-build-pyramids.
- Compare with what exists. Keep every part of the current design that already matches the new one. A first-principles design is not a rewrite by default; often it shows that most of the code is right and one assumption is wrong.
- Land it like the Ship of Theseus: part by part, the system running the whole time. No big-bang rewrite. Delete what the new design makes dead before you build on top. Then order the change into small steps that can each be verified on their own. Carry it through every reference: types, callers, tests, docs. Remove the old path in the same change, not "later".
Output
Before writing code, show the reader:
| Section | Content |
| Goal | One sentence. |
| Done when | A check that could prove the redesign failed. |
| Facts | Each with its evidence. |
| Dropped | Each choice or habit you are removing, where it came from, and why it no longer holds. For the user to confirm. |
| Design | The chosen design, and why the others lost. |
| Steps | Numbered, each with how it will be checked. |
Once the user agrees, record the decision and each dropped choice where the project keeps its decisions (for example docs/adr/), so the next person who asks "why is it like this?" finds the answer instead of digging through history.
Stop
- Do not write code before the facts and the dropped assumptions are written down.
- Do not call something a fact without evidence.
- If every assumption turns out to be a fact, the current design is right. Say so and make the small change instead.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

