Skills
Repeatable procedures for common tasks in this project. Each skill documents the exact steps, relevant files, and things to watch out for.
Sync & Publish Notes
When: User wants to push new or updated notes live.
npm run publish:quick
# = sync + git add . + commit "Auto-update notes" + pushIf a preview first is needed:
npm run dev # localhost:8080
# then:
npm run publish:quickWatch out for:
content/is overwritten on every sync — never manually edit files there- Check
npm run check:linksif wikilinks were restructured
Re-index RAG Search
When: New notes were added or content changed significantly.
npm run rag:indexThis regenerates rag/vector-store.json. Commit it afterwards if it should be tracked:
git add rag/vector-store.json
git commit -m "Update RAG index"Watch out for:
- Requires API key for embeddings — check
.envif it fails - Never edit
vector-store.jsonmanually
Add or Change a Quartz Plugin
When: User wants to enable/disable a feature (e.g. graph view, RSS, search).
Files to read first:
quartz.config.ts— plugin list underplugins: { transformers, filters, emitters }quartz/plugins/— available plugin implementations
Steps:
- Read
quartz.config.ts - Add/remove the plugin in the relevant array
- Run
npm run buildto verify no errors - Run
npm run devto preview
Change Site Layout or Components
When: User wants to move, add, or remove UI elements (sidebar, backlinks, table of contents, etc.).
Files to read first:
quartz.layout.ts— defines which components appear wherequartz/components/— component implementations
Steps:
- Read
quartz.layout.ts - Adjust the relevant layout section (
defaultContentPageLayout,defaultListPageLayout) - Preview with
npm run dev
Add Custom CSS
When: User wants to tweak the visual design.
Files:
quartz/styles/custom.scss— project-level style overrides (create if missing)quartz/styles/base.scss— Quartz base styles (read-only reference)
Steps:
- Check if
custom.scssexists, create it if not - Add overrides there — do not modify
base.scss - Verify in
quartz.config.tsthat the custom stylesheet is referenced
Validate Internal Links
When: After restructuring notes or renaming files.
npm run check:linksFix broken links in the source Obsidian vault, then re-sync:
npm run syncDeploy to Server
When: User explicitly requests a production deployment.
./deploy-to-server.shRead DEPLOYMENT-GUIDE.md and SERVER-DEPLOYMENT.md before running for the first time or if something is unclear.
Do not run without explicit user confirmation — this affects the live site.
Update Sync Configuration
When: User wants to publish a new vault folder or exclude content.
File to edit: scripts/sync-from-vault.ts
Key config block:
const CONFIG = {
VAULT_PATH: "...",
PUBLIC_DIRS: ["/FolderToPublish"], // whitelist
ASSETS_DIRS: ["/FolderToPublish/Images"],
EXCLUDE_PATTERNS: ["**/Private/**"], // blacklist
REQUIRE_PUBLISH_FLAG: false,
}After changing: run npm run sync and verify content/ looks correct before building.