Pixel art of a black turtleneck sweater on a wooden hanger

~/turtleneck

turtleneck

Makes your AI agent think like the architect everyone rolls their eyes at, until they're right.

An agent skill for the decisions code can't undo: where the boundary goes, what the system is coupled to, who pays in year three. Ask "should we use X or Y" and instead of confident prose you get trade-off work: options that actually differ, random stressors, priced choices, the accepted trade-off stated as a loss, and the questions only you can answer, on one page.

install

$ npx skills add danielmarbach/turtleneck
Claude Code/plugin marketplace add danielmarbach/turtleneck/plugin install turtleneck@turtleneck
Codexcodex plugin marketplace add danielmarbach/turtleneckcodex plugin add turtleneck@turtleneck
pipi install git:github.com/danielmarbach/turtleneck
Anything that reads AGENTS.mdcopy AGENTS.md into the project root

the_gate

First, is this architecture at all?

It is if any hold: hard to undo once built, closes off futures (a boundary, data ownership, a protocol, a vendor), crosses a team or system boundary, or someone other than the author pays the ongoing cost. Otherwise it is code, and the agent says so in one line and moves on. The protocol below is expensive on purpose and only runs where undo is expensive.


the_protocol

Six rungs. No recommendation before the last one.

  1. Ride the elevator. State the decision on two floors: penthouse (business outcome, who pays) and engine room (what changes, what on-call sees). Missing a floor? Ask. Never fill it with invented domain knowledge.
  2. Open the solution space. At least three options that differ in kind, always including defer and buy-or-reuse. The option you arrived with gets attacked hardest.
  3. Stress it. 8 to 12 stressors, business and technical, at least two absurd, no probabilities. Stressors that break the same components reveal hidden coupling. That is where a boundary wants to be.
  4. Price the options. Build cost, run cost and who carries it, undo cost, what stays open. Surviving a stressor is a purchase. Name the price.
  5. Cross-examine. Elevator pass: which stressors are worth paying for at all? Residuality pass: which price assumes a future you do not know? Keep what survives both.
  6. Decide or defer. "We give up X to get Y." The observable facts that would flip it. The questions only the owner can answer.

the_output

The output is a one-page record.

"Should we put a Redis cache in front of the product catalog reads?" at napkin level. Unedited output from the eval run.

Options: A add Redis in front of catalog reads: new system, shared cache, near-instant invalidation. B in-process cache with a short TTL: no new system, per-instance staleness. C defer: measure whether the DB is actually the bottleneck before adding anything. D reuse: a read replica or an existing CDN/cache layer, if one already runs. Pick: B, or D if a read replica already exists. We give up cross-instance consistency and instant invalidation to get no new system to operate and no cache-invalidation contract to own. Flips if: catalog edits must be visible within seconds on every instance, or read volume outgrows one DB plus local caches. You decide: how stale can a catalog read be, and is the DB actually the bottleneck at peak?

The last line matters most. The failure mode of AI in architecture is plausible design in a domain nobody in the room understands, so every gap in knowledge becomes a question.


banned_moves

What pattern-matching looks like, and the move that replaces it.

bannedinstead
"It depends."It depends on X. If X, then A. If not, B. Here is how to find out X.
scalability: highUnder 10x volume, A survives, B starves the thread pool.
"best practice"The stressor or organizational force the practice answers here.
a pattern by nameThe stressor it answers, and the price of the answer.
new tech as the fixName the habit that made the old one painful. Check the new one does not let it continue.
three listed, one exploredSame stressor table and same price columns for every option.
quoting named architectsMake the argument. If it is good, it does not need a name on it.

commands

Drive it from chat.

/turtleneck [napkin|full|deep]run the protocol; level is optional and the gate picks if omitted
/turtleneck-reviewgap list over an ADR, design doc, RFC, or PR description
/turtleneck-stressresiduality pass alone: stressors, residues, attractors, boundary candidates
/turtleneck-helpquick reference

levels

Spend analysis where undo is expensive.

Name a level, or say nothing and the gate picks one from undo cost: napkin for cheap-ish undos and first cuts, full for expensive undos and multi-team boundaries, deep only when asked. It says which it picked and why.

napkin

Ten lines. Options, pick, the trade-off as a loss, one flip condition, one owner question. For first cuts and cheap-ish undos.

full

The six rungs. 8 to 12 stressors, both cross-exam passes, a one-page record.

deep

Full plus the stressor-by-component incidence matrix, attractor analysis, and a contagion trace. For boundaries several teams will live behind.


the_two_lenses

Two bodies of work that pull in different directions.

The Architect Elevator

Gregor Hohpe. Architects ride between the penthouse where business decisions happen and the engine room where systems run.

  • A decision described on one floor is not a decision.
  • Architecture is selling options, and options have a premium.
  • Loose coupling has a price on both sides.
  • New technology punishes bad habits.

Residuality Theory

Barry O'Reilly. The business environment is not a stable system with knowable probabilities.

  • Hit the naive design with random stressors, including absurd ones.
  • Let the component structure emerge from what survives.
  • Two components that break under the same stressor are coupled, whether or not the code shows it.
  • No likelihoods. Every stressor is treated as if it will happen.

They disagree in a useful way. The elevator says resilience is not free and asks who upstairs cares about this stressor. Residuality says your tidy price table assumes you know which future arrives. Rung 5 runs that argument on every decision. Neither author is involved in or endorses this project. Read the books at architectelevator.com and leanpub.com/residuality. This page only holds the working questions.


evals

Does the model actually follow it?

96%
checks passed with the skill
46%
same model, same checks, no skill
47/50
architecture quality on six Ford and Neward katas, judged by a stronger model

Deterministic checks for required sections, option count, stressor count, absurd stressors, the trade-off stated as a loss, flip conditions, owner questions, the gate on non-architecture prompts, and the banned moves, plus an LLM judge on four rubric criteria. The first two numbers measure protocol compliance on one model and one run. The third comes from a second suite that works six architectural katas and has a stronger model score each record for whether it picked the load-bearing decision, used the brief, found a non-obvious coupling, priced against the stated scale, and invented nothing. Whether the records are good architecture still needs a human architect. Harness, results, and two unedited kata records in evals/ and examples/.


lineage

Siblings.

Ponytail decides how little code goes inside the boundary. Turtleneck decides where the boundary goes. They compose; turtleneck's gate hands anything that is not architecture straight back.

The black turtleneck is the uniform of the person who decides what not to build. darrenohd/turtleneck got there first with a ponytail sibling for product scoping. This project is unrelated and landed on the same name independently.