se-knowledge-hub
v0.0.1
Published
Knowledge Hub for Skedulo Pulse: customer guides published from a git corpus, with a public reader and an authenticated editor.
Readme
Knowledge Hub
Skedulo Pulse package and agent for customer-facing Knowledge Hub guides.
Layout
src/is the Pulse package: object model, horizon pages and templates, theguide-readerfunction (public, read-only), theguide-editorfunction (authenticated, saves edits), and the public Knowledge Hub page. Deploy it withsked package deploy.packages/agent/is the Knowledge Hub agent: corpus reader and linter, the guide draft flow, quality gates and Hub publish. Seepackages/agent/README.mdandpackages/agent/docs/corpus-contract.md.skills/,bin/khand.claude-plugin/are theknowledge-hubClaude Code plugin, which carries the/knowledge-hub-*commands. Its marketplace is this repo, and it followsmain.shared/plans/holds the plan for each ticket; read the relevant one before starting follow-on work.
There is no server to run. Install the commands once (below), then use them in Claude Code from any folder:
| Command | What it does |
| --------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| /knowledge-hub-status | See where every customer's guides stand: new SkedAI material waiting, drafts to check, what is live, and the page links. Changes nothing. Start here. |
| /knowledge-hub-update <customer> | Turns SkedAI's new material for a customer into draft guides (checking and merging SkedAI's update first) and gives a draft preview link (#/<customer>?draft=<token>, works for 7 days). Nothing goes live. |
| /knowledge-hub-revise <customer> <guides or all> <feedback> | Rewrites guides from your feedback, checks them with a BA and a UX writer reviewer, and gives a draft preview link. Nothing goes live. |
| /knowledge-hub-media <customer> <file, remove ... or capture> | Adds, replaces or removes a screenshot or video in a guide (videos become MP4 under 25 MB), or captures screenshots from the customer's Skedulo web app, or the mobile app on an Android phone or emulator, the iPhone Simulator or a real iPhone through iPhone Mirroring (capture mobile), with personal data covered with soft grey bars (pasted images too, by the text read on them); suggests where each goes for you to confirm, and gives a draft preview link. |
| /knowledge-hub-publish <customer> | Makes the drafts live: one approval on GitHub (the approval PR), then it shows what will change and publishes after your yes. |
| /knowledge-hub-unpublish <customer> <guides or all> <reason> | Takes guides off the live page at once, no PR needed. Nothing is deleted; a guide comes back when its text is revised and made live again. |
<customer> is the customer name as in the page link (e.g. lindamood-bell).
Set up as a new teammate
Access: membership of the Skedulo GitHub org with write access to
se-knowledge-corpus, and a user on theknowledge-hubSkedulo tenant that can create records (needed only to publish).In a terminal, once (Node 20 or newer):
npm install -g @skedulo/knowledge-hub-agent && knowledge-hub setupsetupsigns you in toskedandghwhere needed, installs theknowledge-hub@se-knowledge-hubplugin from this repo'smainwith auto-update on, and removes copies an earlier setup made. New releases then reach you at your next Claude Code session. Without theclaudeCLI or GitHub access, or with--no-plugin, it copies the commands into~/.claude/skillsinstead; each newer agent version updates those copies. It is safe to re-run.Restart Claude Code and run
/knowledge-hub-status. Every command starts with a pre-flight check that names any missing tool or login (Git, Node 20+,ghand its login,skedand itsknowledge-hublogin) with the one-line fix, and Claude offers to install it for you.
The commands run the agent as kh, which always runs the newest published @skedulo/knowledge-hub-agent through
npx. Claude Desktop needs nothing: the commands are Claude Code skills.
Plugin only. You can skip npm and install from inside Claude Code:
/plugin marketplace add Skedulo/se-knowledge-hub#main
/plugin install knowledge-hub@se-knowledge-hubKeep #main: without it the plugin follows dev, this repo's default branch, whose commands may need an agent that is
not published yet. Auto-update is off for a marketplace added this way. The pre-flight check warns about both, and
npx -y @skedulo/knowledge-hub-agent setup in a terminal fixes them. If you added another branch on purpose, setup
keeps it; claude plugin marketplace remove se-knowledge-hub first moves you back to main.
Working on the commands. In this repo the commands run the locally built agent (packages/agent/bin/kh), not
kh. To try edited skills, start Claude Code with claude --plugin-dir ., which loads this checkout in place of the
installed plugin for that session.
They keep a corpus clone at ~/.knowledge-hub/corpus and publish with your sked login (sked tenant login web -a knowledge-hub -t knowledge-hub -o; sked looks in production first, so if the team is not found add -e test). A weekly cloud routine runs the update step on its own (packages/agent/docs/routine.md).
Add a customer
- Someone with Hub admin access creates the customer's Project on the
knowledge-hubtenant and sets its Slug to the customer's name as in the page link (e.g.lindamood-bell, the same as its folder undercustomers/in the corpus). - They confirm with the customer's owner that its guides may appear on a public page. Owner of this step: to be decided; ask the Knowledge Hub lead.
- Run
/knowledge-hub-update <customer>once SkedAI's material for it is in the corpus.
Until the Project exists, every command stops with ": not on the Knowledge Hub yet. Ask a Hub admin to add it."
Commands
yarn bootstrap # install deps and set up hooks
yarn test # jest, including packages/agent
yarn check:prettier
yarn deploy:dry-run # package the Pulse side
cd packages/agent && yarn lint:corpus <customer-dir>
claude plugin validate --strict .Releasing the agent and the plugin together: packages/agent/README.md#release.
