Knowledge base
Keep the fix and the reason it worked together.
Every project has a private knowledge base for runbooks, decision records and onboarding notes. Name an issue in an article and the issue lists the article under Referenced by, so whoever opens it next finds the reasoning too.
Readable only by the project's members. No public pages, no anonymous access.
Follow the key both ways.
The decision record names ACME-12, so the key in its text links to the issue. Open the issue and the article is waiting under Referenced by.
- Select ACME-12 in the article.
- The issue opens with the article under Referenced by.
- Select the article there to come back.
Decision record · Published to project members · Last updated by Alex Lee
Invitation links and expiry
Invitation links expire after seven days (INVITE_TTL_DAYS). An expired link must explain itself and offer a new one. A blank page or a redirect to sign-in is a bug.
Decided 2 Oct 2026. The expiry message is shown on the invitation landing page itself, before any sign-in prompt, because the person may not have an account yet. See ACME-12 for the first instance.
- Page
- /projects/ACME/articles/invitation-links-and-expiry
- For agents
- article://ACME/invitation-links-and-expiry
Invite link blank after it expires
Actual. Opening an invitation link older than seven days shows a blank page.
- Reporter
- Casey Kim
- Assignee
- Alex Lee
- Status
- Open
- Sprint
- Sprint 08
Hand-drawn product views with fictional data.
The next person sees the runbook beside the issue.
Without a reference, ACME-12 says what broke and nothing about why it matters. Once an article names it, the issue lists that article, so whoever opens it next finds the reasoning without asking around.
Invite link blank after it expires
- Assignee
- Alex Lee
- Status
- Open
- Links
- None
Why seven days? Should an expired link go to sign-in? The answer is in a thread somewhere, or in someone's head.
Invite link blank after it expires
- Assignee
- Alex Lee
- Status
- Open
- Links
- None
Referenced by
Invitation links and expiry
Decisions · ACME · updated 2 Oct 2026
Written first still counts.
An article that mentions a key before the issue exists is listed as soon as the issue does.
Resolved keys are struck through.
Once the issue is resolved, its key in the article reads as done, so the text stays honest.
Code is not a reference.
A key inside a code block stays plain text, so a pasted log does not link every issue it prints.
From a resolved incident to a runbook anyone on the project can find.
Sam Ortiz fixed a failed partner sync on 12 Oct 2026. Pick a step to see how the fix becomes a runbook the next person on call will actually find.
Partner sync stops after a key rotation
- Assignee
- Sam Ortiz
- Status
- Fixed
- Reporter
- Casey Kim
- Title
- Restoring a failed sync
- Address
- restoring-a-failed-sync
- Start from
- RunbookDecision recordOnboarding guideBlank
- Under
- Billing sync / Runbooks
DraftOnly you and the project's admins can see this article.
When to use this
Describe the alert, symptom or request that sends someone here.
Before you start
Steps
If it does not work
Runbook · Published to project members · Last updated by Sam Ortiz
Restoring a failed sync
When to use this
The partner sync shows Failed on every batch after a key rotation, as in ACME-24.
Steps
- Copy the new key into the sync service's settings.
- Replay the failed batches from the sync log, oldest first.
- Confirm the next scheduled run succeeds.
Article
Restoring a failed sync
sync-outagerunbook
Issue
ACME-24 Partner sync stops after a key rotation
sync-outage
One list of tags for the whole organisation. When you tag an article, tags already used on articles are offered first, but any tag can be used.
Issues 2
ACME-24Partner sync stops after a key rotation
ACME-25Sync log hides the rejected key error
Articles 1
Restoring a failed sync
Runbooks · Sam Ortiz · 12 Oct 2026
The partner sync shows Failed on every batch after a key rotation. Copy the new key into the sync service…
A query that only makes sense for one kind, such as status: draft, is answered by that group; the other says so instead of guessing.
A tree three levels deep, and nothing else to learn.
There are no separate categories. An article with articles under it is the category, and it can carry its own overview. Drag an article to reorder it or move it under another; from the keyboard, Alt with the arrow keys does the same. Moving it never changes its address.
Comments
The same editing and deleting rules as comments on issues, and @username mentions work the same way.
Files
Drop or paste them into the editor, or attach them to a comment. Up to 50 per article, counted toward the organisation's storage like any other attachment.
Addresses that last
Restoring a failed sync becomes restoring-a-failed-sync. Renaming keeps the address, so links and agent references keep working.
Restore for 14 days
A deleted article comes back from Deleted articles, with anything deleted along with it. There is no version history: each article shows who changed it last, and when.
Starred
Restoring a failed sync
Articles
- Billing sync
- Architecture overview
- Runbooks
- Restoring a failed sync
- Rotating partner keysDraft
- Decisions
- Invitation links and expiry
- Onboarding
Tags
- decision1
- invitations1
- onboarding2
- runbook2
- sync-outage1
Internal to the project, with no public pages.
Only the project's members can read its knowledge base. There is no public publishing, no share-with-anyone link and no anonymous access. In an archived project, it becomes read-only.
A draft is yours until you publish it.
A new article is a draft: only you and the project's admins can see it. A one-line notice on the article says so.
Published means every project member.
Publish it and everyone in the project can read it, Observers included. Return it to draft at any time; it remembers when it was last published.
| Action | Observer | Contributor | Project Admin and up |
|---|---|---|---|
| Read published articles | Yes | Yes | Yes |
| Read drafts | No | Own | Yes |
| Create, edit, publish, move | No | Yes | Yes |
| Delete articles | No | Own | Yes |
| Comment, tag | No | Yes | Yes |
| Star and watch | Yes | Yes | Yes |
Own means the articles you wrote. Someone else's draft is not shown to a Contributor at all.
Your agent reads the decision before it touches the issue.
Articles are Markdown, so an agent reads them as written. It works through the same API and permissions as you: the drafts you cannot see, it cannot see either. Text it reads arrives marked with who wrote it, and the agent is told not to follow instructions inside it.
Read before acting
What did we decide about expired invite links? Then look at ACME-12.
search_articles invite expiryget_articleget_issue
get_article returns the article as Markdown. A client that supports resources can attach article://ACME/invitation-links-and-expiry instead.
Draft from the incident
/mcp__nothingleft__document-this ACME-24
search_articleslist_articlescreate_article status: draft
It checks what is already written, cites ACME-24 so the issue lists the article, shows you the draft and creates it only once you agree.
Publish and tag
Publish Restoring a failed sync and tag it sync-outage.
update_article
One partial update: status and tags together.
Questions about the knowledge base.
Who reads what, how articles and issues find each other, and what is deliberately left out.
Who can read an article?
A new article is a draft: only its author and the project's admins can see it. Once published, every member of the project can read it, Observers included. Nobody outside the project can read its knowledge base, and there is no public or anonymous access. Knowledge base manual
Can we publish articles to customers or the public?
No. The knowledge base is internal to the project: there is no public publishing, no share-with-anyone link and no anonymous access. Public documentation is a different product, and this one does not try to be it.
How does an article link to an issue?
Write the issue key, such as ACME-12, anywhere in the article. It becomes a link to the issue, struck through once the issue is resolved, and the issue lists the article under Referenced by. That works even if the article was written before the issue existed. A key inside a code block is not a reference.
Are there templates?
A new article starts from a Runbook, a Decision record, an Onboarding guide or a blank page, each with headings to fill in. There is no template editor to manage beyond those starters.
Does it keep version history?
No. Each article shows who changed it last, and when. A deleted article can be restored for 14 days, with anything deleted along with it; after that it is removed for good, with its comments and files.
Can an AI agent read and write articles?
Yes, through the MCP server, with your permissions and nothing more. It reads an article with get_article, writes one with create_article and publishes or tags it with update_article. The document-this prompt turns resolved issues into a draft and creates it once you agree. A token reads with issues:read and writes with issues:write. MCP and AI agents
Write the next runbook where the next person will look.
Join the beta, create a project and start its first article from a starter. Name an issue key in it, and the issue points back.