How SkillKeeper protects your data
For the teams that use it. What is kept, who can see it, where it lives, and what we have deliberately not built. Written for the people who run a fund, not for engineers; the technical detail (docs/SECURITY_REVIEW.md) is available on request. Black Matter VC, Inc. · 14 October 2026, updated 15 October 2026 · applies to app.skillkeeper.ai. The same text is published as a page to hand to a client.
The short version
- Your workspace is yours alone. The database itself refuses to show a person anything outside the workspaces they belong to. There is no setting we could get wrong that would show your skills to another firm.
- Nobody joins without an invitation from one of your leads, and an invitation only works for the address it was sent to.
- Private drafts are private. Until a person shares a skill, nobody else sees it: not colleagues, not your leads.
- Your skills are not used to train anything, not shown to anyone you did not choose, and not sold.
- You can take everything with you at any time: every skill downloads as a file, and we delete on request.
Who can see what
SkillKeeper is organised in workspaces. A fund has one workspace; the people in it are members, and some of them are leads. A skill belongs to the person who added it until they share it with the workspace.
| What | You | Your colleagues | Your leads | Another firm |
|---|---|---|---|---|
| Your private drafts | yes | no | no | no |
| Skills shared with the workspace | yes | yes | yes | no |
| Who is in the workspace | yes | yes | yes | no |
| What left the workspace (sends) | your own | no | yes | no |
| How the connector is used | your own | no | yes | no |
These rules are enforced inside the database, on every single read, by the database itself. The application cannot ask for another workspace's rows and get them; the rule is checked below the application, where a bug in a page cannot bypass it. The same rule applies to the files a skill carries, and download links expire after ten minutes.
Signed-in people can only read through the database's own interface. Every change goes through our server, which checks the person's role in the workspace before it writes. A member cannot approve their own skill, add a stranger to the workspace, or publish anything by talking to the database directly.
Accounts and sign-in
You sign in with a one-time link we email you, with your Google or Microsoft account, or with a password if you set one (at least ten characters, checked against lists of leaked passwords). Sessions use short-lived tokens that are verified with a public key on every request and renewed in the background.
Two-step sign-in is available to everyone under Account: after signing in, a six-digit code from an authenticator app on your phone. It is required for the people who run SkillKeeper, and your leads can require it of your leads or of everyone in your workspace (Settings → Security); whoever it applies to cannot open the workspace, or connect Claude to it, until it is set up.
Creating an account inside your workspace is impossible without an invitation. Anyone can start a library of their own on SkillKeeper, but that library is a separate workspace with no connection to yours.
Where your data lives, and who handles it
Everything is encrypted in transit and at rest. The database accepts only encrypted connections and is reachable only by its own hosting platform; its network port is closed to the internet. These are the companies that process data on our behalf, and only what each needs for its part:
| Service | What it does | What it receives | Where |
|---|---|---|---|
| Supabase | Database, files, sign-in | Your skills, accounts and workspaces | United States (AWS, Virginia) |
| Vercel | Runs the application | Requests and their technical logs, kept for days | United States and the region nearest the visitor |
| Sentry | Records faults and how requests went, so we can fix them fast | Ids of people and workspaces, timings, error messages; on an error, a replay of the page with every text masked. Never skill text or what anyone types; kept up to 90 days | United States |
| Slack | Tells our team when something happens in SkillKeeper | Names and email addresses of the people concerned, workspace names, what happened. Never the text or the name of a skill | United States |
| Postmark | Sends our emails | The address and the email; kept 45 days | United States |
| Anthropic | Reads a skill for the safety check; drafts a merge when a lead asks; reads a reported problem next to our code to find its cause | The text of that skill, never account data. A problem someone reports, as it is at GitHub | United States |
| OpenAI | Turns skill text into numbers to spot duplicates | The text of that skill, never account data | United States |
| GitHub | Holds your published skills in a private repository of your own; keeps our own code and the problems people report, in our private repository | The skills you published. Of a reported problem: the name and email address of the person, the workspace, what they wrote and what the page recorded | United States |
| Cloudflare | Our domain, the human check at sign-up, email routing | Technical data of the browser at sign-up | Worldwide |
Anthropic and OpenAI do not use what we send them to train their models, under the terms of the interfaces we use. There is no advertising in SkillKeeper and no tracking across sites; the only cookies are the ones that keep you signed in and carry a message from one page to the next.
What we record to keep it running
Since 15 October 2026 SkillKeeper records, with Sentry, every error and how every request went: which action ran, in which workspace, for which account, how long it took and how it ended. When something breaks we are told at once and can see what happened, usually before anyone has to report it. These records hold ids, not names, and never the text of a skill, a file, a search, or anything a person types; email addresses are masked; the tokens in links and the connection's keys are never sent. When an error happens on a page, Sentry keeps a replay of that page in which every text and every input is masked. The records are kept up to 90 days.
We also keep a record of what happens in each workspace (who joined, invited, shared, approved, published, or changed a setting, and when) for one year, and our team is told in Slack as it happens, by the names of the people and the workspace; never what a skill is called or says.
Anyone can report a problem from the menu under their picture. The report holds what they wrote, the address of the page, their browser, the errors and the failed or slow requests of that page, and Sentry's replay of the minute before, with every text masked; never the text of a skill. It reaches our team by email and as an issue in our private repository at GitHub, where Claude reads it next to our code and writes down the likely cause. The person gets a number to quote and an email when it is fixed. Reports are kept for one year.
The database is backed up every day and backups are kept for seven days. Longer point-in-time recovery is available on request.
Claude's connection
When a person connects Claude to SkillKeeper, Claude acts as that person: it can read what they can read and add skills to their private drafts, and nothing more. It cannot share, approve or publish anything, and it never sees a colleague's private drafts. The connection uses the same membership rule as everything else, so it reaches only workspaces the person belongs to, and it can be revoked at any time.
Publishing puts a workspace's approved skills into a private GitHub repository that belongs to that workspace alone. Your Claude organisation reads from it; who may read it is decided by you, one account at a time. What Claude does with a skill from then on is governed by your agreement with Anthropic.
Sending a skill to someone outside
A person can send a copy of a skill to someone at another firm. The copy is sealed at that moment and kept for at most thirty days; the recipient reads it before deciding to add it to their own library; the sender can cancel until then. Your leads see everything that left the workspace, and can decide who may send at all. The copy, once accepted, belongs to the recipient, with the sender and the workspace on its record as the origin.
What we can see
The people who run SkillKeeper (two accounts today, both with two-step sign-in) can reach everything in the system: that is what running it takes. We look at a workspace's content only when its leads ask us for help, or when the law requires it. Skills a lead chooses to list on the public marketplace are read by us before they appear; nothing is listed unless a lead does it.
What is not in place, said plainly
- No third-party certification yet (SOC 2, ISO 27001) and no external penetration test yet. We reviewed the whole system ourselves on 13 October 2026, from the database rules to the browser, and fixed what we found the same week; the review is available on request.
- The data lives in the United States only. We rely on the standard contractual clauses and the EU-U.S. Data Privacy Framework for people in Europe and the UK; the details are in the privacy notice.
- Backups are kept seven days unless longer recovery is arranged for your workspace.
- SkillKeeper is a young product run by a small company. We say so rather than imply otherwise.
What you control
- Every skill downloads as a file, at any time, by its owner or a lead.
- A private draft can be deleted by its owner; shared skills are retired by a lead and stay readable.
- A person can leave, and leads can remove people; what a person shared stays with the workspace, with their name on its record.
- Accounts and whole workspaces are deleted on request, with the data they hold; backups are gone within thirty days.
Questions, requests, deletions: hello@skillkeeper.ai · Black Matter VC, Inc., 131 Continental Drive, Suite 305, Newark, Delaware 19713, United States. The full terms and the privacy notice: skillkeeper.ai/terms and skillkeeper.ai/privacy.
This describes the product as it is on 14 October 2026; the privacy notice is the text that binds. When the product changes in one of these places, this text changes with it.