Senso's Shared Context path — the knowledge a team and its agents retrieve, use and improve together: an agent asks, nothing on file answers, the person who knows writes it down, the next agent finds it. Use for "Shared Context", "shared context", "open questions", "what can't our agents answer", "settle that", "save this decision", "what are our agents being told about", "what changed since I last looked" — and when the senso-quickstart router sends a user here. Runs senso-shared-context-setup first when the knowledge base is empty. Not for the Verification Loop (senso-verification-loop), and not for a plain save, lookup or handoff of named material (senso-context-layer).
npx @senso-ai/shipables install senso-ai/senso-shared-contextOne loop: an agent asks → nothing on file answers → the person who knows writes it down → the next agent finds it. The knowledge base is the shared context; this skill runs that loop across a team. It owns the order, the messages and two conventions. The mechanics live in the modules:
| Step | Read / load |
|---|---|
| The opener — what is in, what is open | references/open-questions-and-recent-documents.md |
| Settling an open question, or a wrong answer | references/settle-an-open-question.md |
| Saving a decision; what changed | references/save-a-decision-or-handoff.md |
| Every knowledge base command — save, search, tag, revise, hand off | senso-context-layer |
| Every gap command — the report, closing one | senso-gap-report |
A senso command failed | references/troubleshooting.md |
Three conventions this skill owns, because the CLI has no field for any of them. Status —
status:approved or status:draft — and owner — owner:<name, as they say it> — as tags on
the document, set the moment it is saved, plus decided:<YYYY-MM-DD> on a decision. Unknown tag
names are created on first use. An untagged document is neither approved nor anyone's — the
state every website page and upload is in, and that is fine: the tags mark what the team settled
through this loop. And where it lives: a fresh organization gets a shared-context folder
from setup — the default home for what the team settles, theirs to reorganize — while an
organization that already keeps its shared context its own way is followed, never re-filed. The
reads decide which, once per entry: Where the team keeps it, below.
senso whoami first, once — or reuse the organization's name from the router. Say it in a
sentence; never the record.
Never hijack a stated request. "Save revenue.pdf to Senso", "what did we decide about
pricing", "hand this to Priya" are senso-context-layer's — a save, a lookup, a handoff. "Save
this decision" is this skill's door, because a decision has a shape a file does not.
Lead. Do not ask permission to continue. The questions that stay questions are the ones only the user can answer: which open question to settle, who owns the fact, whether the written-up note is right, whether it is approved or a draft. "Shall I continue?" is never one of them.
Every step closes before the next one opens — two lines, both mandatory, in the message that ends the turn. Landed, with a name or a number in it; Next, with what it gets them. A Landed line written between two tool calls is not produced.
Say what each thing is the first time it comes up — and what it buys them, one clause each, once, where the term lands in a quoted template — never a glossary up front:
| First time you mention… | what it is | what it buys them |
|---|---|---|
| the context layer | the shared knowledge base every agent on your team reads from | what one person saves is what the next person's agent starts from |
| an open question | something an agent on your team asked that nothing on file could answer | every one is a teammate about to rediscover the same thing |
| an approved note | a fact or decision the person who owns it wrote down and marked approved | what agents may treat as settled — a draft is not |
| a handoff | the decision, the reasoning, what is still open and the next step, saved for whoever continues | enough for someone else to pick it up without asking |
Never narrate the machinery — and the line during a wait is in their terms. "Checking what your team's agents have asked that nothing answered…", "Checking what your context layer says about that today…". The defect is a line about your own work — "reading the references", "running the reads", "filing the gap" — which names things the user has never heard of.
A choice is offered as options, not as a sentence. With Claude Code's AskUserQuestion, every
two-to-four-answer decision goes through it; the recommended option first, and the recommendation
in the message body too. Free text — a fact, a decision, a name — is never boxed. Without the
tool (Codex, Cursor), the quoted prose is the ask.
More than two facts is a list, never a paragraph. Consecutive lines collapse when rendered. A
blank line between items or a - on each.
Nothing is saved that the user has not read. A written-up fact or decision is shown, corrected, then saved — "go ahead?" after the text, never before it. Never save a model's answer back as a fact. The page this path follows says why: feeding every generated answer back into the knowledge base accumulates errors. What gets saved is what a person said and approved.
The user names every path they give you.
Credits are not a preflight. A 402 anywhere → contact Senso at senso.ai for support on
credit issues, and stop at that step.
senso kb stats --output json --quiet # total_files
| Result | Do |
|---|---|
total_files is 0 | Load senso-shared-context-setup; it gets one document in and hands back here, and the opener then opens with the setup close |
| Anything in | The opener, below |
Where the team keeps it is decided from the opener's reads, once per entry — a
shared-context folder, or the folders their status-tagged notes already live in, or nothing yet
— and it is where every save in this flow goes, so the module's "which folder?" never fires here
except once, on a first save into an organization with material but no settled notes. The three
states are in references/open-questions-and-recent-documents.md.
Read references/open-questions-and-recent-documents.md before the reads, and again
immediately before writing. Four reads, batched and projected: the count, how many notes carry
a status tag, where the team keeps them and the newest, and the open questions — gaps raised by a
search or an answer that nothing on file settled, sorted by demand. Then one message, produced
from that file's skeleton:
Your context layer has 19 documents — the shared knowledge base every agent on your team reads from: 17 from your website and uploads, and 2 notes your team settled through this loop, both approved.
4 questions asked through Senso in the last 30 days found nothing on file to answer them. The most-asked: "What happens to existing customers when the pricing changes?" — 2 people, 3 times.
Want to settle that one?
Options: Settle it (Recommended) · Show all open questions · Save a decision.
senso-gap-report → The report, filtered to the origins the reference names.Read references/settle-an-open-question.md. Four steps; each one that stops for the user ends
its turn on its question:
senso-context-layer → Add something into the team's place — Where the team keeps it —
then tag it — status, owner, date — through Organize.senso-context-layer → After any write: wait until it is searchable,
search the question again, the answer must cite the new note. Then senso-gap-report → Close
a gap records that content was written for it.A wrong answer is an open question too. "Check what our agents are told about " runs step 1 on the user's own question; if they say the answer is wrong or incomplete, steps 2–4 follow. The reference has both entrances.
Read references/save-a-decision-or-handoff.md. "Save this decision" takes the handoff shape
from the page this path follows — the decision, the reasoning, what is still open, the next step —
shown before it is saved into the team's place, tagged approved or draft with its owner and date.
Giving it to a teammate
is then senso-context-layer → Hand off, with the note's id in the message. "What changed
since I last looked" is the newest documents and, for one that changed, its earlier revision.
The opener runs once per entry. "Settle another" takes the next open question by demand without re-running the opener; the close already said what is left. Every round ends on the two doors when the queue is empty. It is an offer each time, not a treadmill — a user who takes a save or a lookup instead has understood the interface.
No knowledge base commands of its own — every save, search, tag, revision and handoff is
senso-context-layer's; every gap command is senso-gap-report's. Do not restate a module's
commands here and do not improvise them — if a module cannot be loaded, stop at the end of the
last step that could run and say so.
No Verification Loop. Industries, standings, drafts, publishing — senso-verification-loop. A
user who asks "where do we stand" or "am I being cited" is sent there.
No promises about tools. Whichever agent a teammate uses reads the same context layer; say that, and nothing more.
| They want | Skill |
|---|---|
| Where they stand, a question they are missing from, a page | senso-verification-loop |
| A plain save, lookup, move, upload or handoff of named material | senso-context-layer |
| The gap report on its own | senso-gap-report |
| To get started, path not yet chosen | senso-quickstart |