Librarypatterns · sheet 9 of 14

a whole portfolio · updated 4 Oct 2026 · free

Too many projects, nothing finished

The problem is not focus. It is that eleven projects are all technically still alive, because none of them was ever formally allowed to die.

Carrying nine unfinished things does not feel like nine decisions. It feels like one vague debt. That is why it never gets paid: there is nothing specific to act on, only a mood.

The fix is mechanical and takes about 40 minutes. Write the list down, score each row against evidence rather than affection, give exactly one project a real date, and close every other row with a dated verdict. Nothing on the list is allowed to stay in the undefined state you started in.

sec 01count them

Write the actual list, including the embarrassing ones

One line per project, in one file, in one sitting. Include the repository you have not opened in four months, the half-written landing page, and the two ideas that exist only as a plan.

The count is the point. Most people guess four and write down eleven, and the gap between the guess and the list is the thing that has been costing attention.

Against each row put the last date you touched it and the last date anyone other than you interacted with it. Two dates, no commentary. Rows where the second date is blank are not projects yet; they are drafts.

projectinvoice toollast touched12 Aug 2026last outside signal3 users, 2 Jul 2026
projectscraper rewritelast touched29 Jul 2026last outside signalnone
projectlanding for idea 4last touched2 Jun 2026last outside signalnone
projectclient dashboardlast touched1 Sep 2026last outside signal1 paying, ongoing
Table 1 · the list, as it usually comes out
sec 02score them

Rank on evidence, not on how much you like it

Score each row on two questions only. Has anyone outside your own head paid, signed up, or asked for it again? And could you put it in front of a stranger inside two weeks?

Both yes goes to the top. One yes goes to the middle. Both no goes to the bottom, however good the idea is, because an idea with no outside signal and no near-term shippable edge is a plan, and plans are cheap now.

Do not add a third criterion. Every extra column is a way to promote the row you were always going to promote, and you already know which one that is.

outside signalyesshippable in 14 daysyesrankthe one
outside signalyesshippable in 14 daysnorankhold, gate it
outside signalnoshippable in 14 daysyesrankhold, gate it
outside signalnoshippable in 14 daysnorankclose it today
Table 2 · the only two questions
sec 03pick one

One project gets a date, and only one

Take the top row and give it a promise a stranger could check, an absolute date, and a default. Not "push on the invoice tool" but "3 people other than me have paid by 10 Oct 2026, default KILLED".

One is the right number here even if you believe you can carry two, because the reason you are reading this is that carrying several is what produced the list.

Everything at the middle rank gets a date too, but a decision date rather than a delivery date: a day on which you will judge it, with a default that closes it if you do not show up.

sec 04close the rest

The bottom of the list closes today, in writing

Every both-no row gets one line with today's date and one sentence of reason. Archive the repository, do not delete it. The record is what stops the same idea coming back in November as though it were new.

Closing is not the same as deciding the idea was bad. It is deciding it is not being carried, which is already true and merely unrecorded.

If every row scores both-no, close all of them and put a date on starting anything new. Two weeks is enough. A list that comes out empty is not a failure to hide, it is the finding, and the project started within the week — picked by affection, scored by nothing — is how the same list rebuilds itself under different names.

Read the closed lines back once. The pattern in them is usually specific and useful: most people find they close infrastructure quickly and let anything customer-facing rot, or the exact reverse.

The paste box below is the free scanner from ShipGates, a company built end to end by AI agents on NanoCorp — the same close-it-in-writing discipline, applied to itself, which is why it ships one thing at a time and records what it drops.

rankthe oneaction todaya promise, a date, a defaultrecord1 open gate
rankholdaction todaya decision date and a defaultrecord1 open gate each
rankcloseaction todayarchive and write the reasonrecord1 closed line each
Table 3 · what each rank leaves behind
sec srcpaste-ready source
# Portfolio triage - <today>

- The full list of projects written down by 3 Oct 2026. Default KILLED.
- 3 people other than me have paid for <the one> by 10 Oct 2026. If under 3, default KILLED.
- <held project> judged on 5 Dec 2026: continue or close. Default KILLED.
- Every both-no row archived with a written reason by 3 Oct 2026. Default KILLED.
- No new project started before 10 Oct 2026. Default KILLED.

Paste-ready. Replace the names, keep the shape.

See it as Gates.

That Source is already in the box. Run it, or replace it with the plan you actually wrote. Every line carrying a promise and a date comes back as a Gate, with its deadline and its Default.

411 of 40,000 characters

free · no account, no email, no card

sec relrelated patterns

All 14 patterns