thought-layer-wiki — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited thought-layer-wiki (Agent Skill) and scored it 92/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 2 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 2 flagged
The text {match} tells the agent to skip the normal "ask the user first" gate. Used adversarially it removes the human-in-the-loop check before destructive or sensitive actions, turning a normally-gated agent into a fire-and-forget executor.
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
The wiki is the founder's keepable home for everything the workflow produced: the thinking that created the business, the brand and styles, the business model, the PRD and requirements, the deploy rules, and a linked index of every delivered artifact. It runs from the kit on the user's own machine and writes into the user's own Notion. Notion pages are private by default, so this satisfies a "behind auth, not public" requirement with no extra infrastructure.
tl_sync tool / tl sync init). Honor the usual selection: --name <session> (or the workspace's active session), --workspace <label>, or an explicit --dir.tl_artifacts tool / `tl artifacts` first so artifacts/<session>/artifacts.json exists. The wiki reads it to fill the Artifacts database with GitHub links. Without it, the wiki still builds from the session state, but the Artifacts database is empty; the tool says so. Tell the user to deliver artifacts first for the full result.THOUGHT_LAYER_NOTION_TOKEN (or NOTION_TOKEN) in the environment, then in Notion opens the page that should hold the wiki, clicks Share, and adds the integration so it has access. That page's id or URL is the parent-page. The token is read only from the environment; never ask the user to paste it into the chat or put it in a parameter or file.First check what you have. If you (the agent) already have a Notion MCP / connector authorized to the user's workspace, prefer it — the user skips the entire integration-token setup. Otherwise use the BYOK token path, which stays the universal floor (the browser SPA and a plain CLI/CI host have no MCP). Both paths render the same plan; pick one.
Build the wiki through the MCP and never ask for a token:
tl wiki --name <session> --emit-plan --json (or the tl_wiki tool with emitPlan: true). With no token and no network call it returns { title, icon, overview, areas: [{ key, title, emoji, markdown }], artifacts: [{ name, category, bytes, url? }] }. Each area's markdown is the ready-to-post page body.~/.thought-layer/notion.json) is written only by the token path, so on the MCP path it does not exist. Before creating, search Notion for an existing page titled `<title>`; if it exists, update it in place; otherwise create it. If you cannot search, ask the user whether to create fresh or point you at the existing page.plan.title under the parent (icon plan.icon), with overview as its body.areas[], titled "<emoji> <title>", with that area's markdown as the body.artifacts[] entry (use its url for Link when present).Use the tool, never a hand-written Notion curl:
tl_wiki tool. Start with tl_wiki { name, dryRun: true } to show the plan (area pages, block counts, artifact count), then tl_wiki { name, parentPage } to build it.tl wiki --name <session> --dry-run, then tl wiki --name <session> --parent-page <id|url> (via npx -y @hobocode/thought-layer tl wiki).Always dry-run first and show the user the area + artifact plan, then build.
GitHub needs no equivalent path:tl artifactsandtl syncalready authenticate via thegh/git keyring (no token paste), so a GitHub MCP is not required for delivery.
Notion's free tier caps a single uploaded file at 5 MiB. The wiki links artifacts to their GitHub copy when the artifacts were delivered (the normal path), and reserves direct upload for small files where no link exists. Notion cannot inline-render arbitrary SVG or HTML, so the logo, look book, and infographics are linked or attached, not embedded as broken previews; their data is also rendered natively where it makes sense (the palette table, the brand guide text).
Notion has no upsert, so the tool stores the root page id, the per-area page ids, and the Artifacts database id in a machine-local ~/.thought-layer/notion.json (keyed by session). A normal re-run reuses those pages and refreshes their content; --replace / replace: true rebuilds the wiki from scratch (new pages). This id map is local provenance, never synced into the sessions repo.
If the tool returns ok: false, relay its message verbatim, do not claim a wiki was built:
THOUGHT_LAYER_NOTION_TOKEN.--parent-page.~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.