Install any skill in seconds. Free to start, no credit card required.
Get Started Free →jamditis/one-way-door
Use this skill when creating new files that represent architectural decisions — data models, infrastructure configs, auth boundaries, API contracts, CI/CD pipelines, or event systems. Flags irreversible decisions and forces a discussion about trade-offs before committing.
Passed 10 of 17 test cases with the skill, and 4 of 17 without it.
and 17 more in the full report
11 fixed3 passed either way6 still failing3 broke
Tokens, turns and time describe resource use, not a dollar price.
One of 11 test cases the skill fixed. Same model, same prompt, with and without the skill.
List the three core questions specified by the architectural review decision framework that must be evaluated before committing to an irreversible structural design choice.
| Checked | Without skill | With skill |
|---|---|---|
| Identifies asking what the decision commits or constrains. | Missed | Passed |
| Identifies asking what alternatives exist. | Passed | Passed |
| Identifies asking what the migration path is. | Missed | Passed |
The instructions your model reads when the skill loads.
Some decisions are easy to reverse, you can change a UI component, rename a variable, or swap a utility function with no lasting consequences. These are two-way doors: walk through, and if it's wrong, walk back.
Other decisions create gravity. Once traffic, users, or other code depends on them, changing course gets expensive. A database schema migration after launch. An API contract that external consumers rely on. An auth boundary that shapes your entire permission model. These are one-way doors.
The most expensive mistakes in software aren't bugs. They're irreversible architectural decisions made too quickly.
Files matching: schema.prisma, schema.graphql, *.sql, migration*, models.py, models.ts, entities.py, entities.ts
Data models are the hardest decisions to reverse. Once your database has rows, every schema change requires a migration. Column renames break queries. Relationship changes cascade through your entire application.
Questions to ask:
Files matching: docker-compose*, Dockerfile, *.tf, terraform*, pulumi*, cdk*, cloudformation*, k8s*, kubernetes*, helm*
Infrastructure choices constrain everything built on top of them. Switching from ECS to Kubernetes, or from Lambda to containers, affects deployment pipelines, monitoring, scaling, and team knowledge.
Questions to ask:
Files matching: auth.{ts,js,py}, firestore.rules, storage.rules, *.rules, security.{ts,js,py,json,rules,yaml,yml}, rbac.{ts,js,py,json}, permissions.{ts,js,py,json}
These patterns are extension-qualified on purpose: an unrelated file that merely contains the word security or permissions (a note, a doc, a test) does not trip the check.
Auth boundaries are load-bearing walls. Session vs JWT, role-based vs attribute-based, single-tenant vs multi-tenant, each choice shapes your security model, user experience, and compliance posture.
test cases passed, vs 4 / 17 without
More skills from the same source and nearby in the registry, with their headline benchmark lift.