视觉画布设计
canvas-design
基于设计原则创作静态视觉作品,用于海报与品牌图形。
knowledge-base【文档与办公】Build and maintain a company knowledge base as a wiki of interlinked markdown notes in the workspace — a private, compounding Wikipedia. Use when the user wants to start or organize a knowledge base / wiki, ingest sources (URLs, documents, pasted notes) into it, ask questions answered from it, or audit (lint) it. Defines the wiki layout (SCHEMA / ind…
独立 GitHub 快照 · 自动分类 · 以原作者文档为准
You maintain a compounding knowledge base: a wiki of interlinked markdown
notes that lives in the workspace. Unlike a chat that forgets, the wiki is
written once and kept correct — every new source is folded into existing
pages and cross-referenced, so the knowledge graph gets denser over time. The
files are plain markdown with [[wikilinks]], so the user can also open them
in Obsidian or any editor.
The wiki lives under wiki/ in the workspace (use an existing root such as
knowledge-base/ if one is already there). Structure:
wiki/
├── SCHEMA.md # the domain, conventions, and tag taxonomy — defined once
├── index.md # catalog of every page, grouped by type, each with a one-line summary
├── log.md # append-only action log (newest entries at the bottom)
├── raw/ # captured sources, IMMUTABLE — you read these, never edit them
│ ├── articles/
│ ├── docs/
│ └── transcripts/
└── pages/ # the wiki pages (one entity/concept/comparison/query each)
Page filenames are lowercase, hyphenated slugs, no spaces: acme-robotics.md,
atlas-robot.md. A [[Display Name]] link resolves to the page whose slug
equals the slugified display name, so [[Acme Robotics]] and [[acme-robotics]]
both point at pages/acme-robotics.md.
When the user asks how to read or browse what you've built, tell them: it's
plain markdown they can open in any editor, and the pages are Obsidian-native
by design — they can open the wiki/ folder as an Obsidian vault to get graph
view, backlinks, and clickable [[wikilinks]] for free. (The files live in the
workspace, so point the vault at the workspace wiki/ folder.)
---
title: Acme Robotics
created: 2026-06-05 # YYYY-MM-DD
updated: 2026-06-05 # YYYY-MM-DD — bump on every edit
type: entity # entity | concept | comparison | query | summary
tags: [companies, robotics] # every tag MUST appear in SCHEMA.md's taxonomy
sources: [raw/articles/acme-launch.md] # the raw/ files this page draws on
# optional:
confidence: high # high | medium | low
contested: true # set when the page records a genuine contradiction
contradictions: [other-slug]
---
[[slug]] (or [[slug|alias]]) for every cross-reference. Link the
first mention of any entity/concept that has (or should have) its own page.[[index]] where it helps navigation.raw/ file the page draws on in sources:.Before creating or editing anything, read the lay of the land so you don't duplicate pages or drift from the schema:
file_read wiki/SCHEMA.md — the domain + conventions + tag taxonomy.file_read wiki/index.md — what pages already exist.file_read wiki/log.md — recent activity (skim the tail).If wiki/ does not exist yet, go to Init.
wiki/ with raw/ and pages/ subfolders.SCHEMA.md: a one-paragraph description of the domain, the naming +
linking conventions (summarize this skill), and a tag taxonomy of
10–20 lowercase tags under a ## Tag taxonomy heading, one per - bullet.
If the domain is unclear, ask the user one question to scope it.index.md (an # Index heading) and log.md (# Log).A source is anything worth remembering. The wiki is source-agnostic — use
whatever surface fits: a URL (fetch it with web_fetch), a chat-attached
file (PDFs, Word, and spreadsheets are extracted to text), pasted notes,
or something you found with web_search. The steps are the same regardless.
raw/ (e.g. raw/articles/<slug>.md)
with a tiny header (source_url when there is one, ingested date). Fetch a
URL with web_fetch first. Never edit a file in raw/ afterward —
corrections go on the wiki pages, not the source.file_search the name and scan
index.md. Update the existing page rather than creating a duplicate.[[links]], and the new
raw/ path appended to sources:. Bump updated:.index.md (add new pages under their type, with a one-line
summary) and append to log.md (- 2026-06-05 — ingested <source>; added/updated <pages>).file_search for relevant pages; file_read the best matches.[[links]]. If the wiki can't
answer it, say so (and offer to ingest a source that would).type: query page under pages/
and add it to the index + log.skill_run({ skill: "knowledge-base", script: "lint", args: { root: "wiki" } })
It returns JSON: clean, totalIssues, counts, and per-check arrays.
clean / totalIssues count only the blocking checks below; fix every
blocking issue with file_write / file_patch and re-run until clean is
true.
Blocking (gate clean):
index.md.SCHEMA.md's taxonomy first, or retag the page.Advisory (reported but do NOT gate clean — act on them with judgment):
updated if it still holds.When a new source contradicts an existing page, do NOT silently overwrite:
check the dates, keep both positions with their sources if the contradiction is
real, set contested: true and contradictions: [other-slug] in frontmatter,
and call it out to the user for review.
raw/. It is the immutable source layer.index.md and log.md — they are the wiki's navigation and history.