跳到正文
cccskills
免费在 GitHub 公开

publish

Turn stored knowledge pages into self-contained HTML files for sharing research, briefings, or travel plans. The workflow removes internal metadata and links, applies password protection by default, and offers optional cloud upload and expiring access links.

中文简介正在准备中。当前显示英语简介。

原文查看原文说明

Share brain pages as beautiful password-protected HTML with zero LLM calls

集成工具Slack
查看安装方法

适用场景

  • Sharing research with external recipients
  • Preparing a deal memo for sharing
  • Sending a briefing about a person
  • Distributing a travel plan as an HTML file

包含的文件(1)

  • SKILL.md6.4 KB

SKILL.md(原文)

安装前可以查看交给 AI 代理的指令内容。

Publish Skill

Share brain pages as beautiful, self-contained HTML documents. Optionally password-protected with client-side AES-256-GCM encryption. No server needed.

This is a code + skill pair: the deterministic code (gbrain publish) does the stripping, encrypting, and HTML generation. This skill tells you when and how to use it. See Thin Harness, Fat Skills for the architecture philosophy.

Contract

  • Published HTML is fully self-contained: no external dependencies, no server needed.
  • All private metadata (frontmatter, source citations, confirmation numbers, brain cross-links, timeline) is stripped before publishing.
  • Password protection uses AES-256-GCM with PBKDF2 key derivation; plaintext never appears in the encrypted HTML file.
  • Default is always encrypted unless the user explicitly requests "open", "no password", or "public".
  • External URLs (https://...) are preserved; only internal brain paths are stripped.

When to Publish

  • User asks to share a brain page, create a shareable link, or says "give me a page"
  • User wants to send a deal memo, person briefing, or research to someone external
  • User asks to publish a data room analysis or trip plan
  • Any time brain content needs to leave the brain without exposing the whole system

Default: ALWAYS ENCRYPT

Brain content is private. Default to password-protected unless the user explicitly says "open", "no password", or "public".

If no password is specified, auto-generate one. Share the password via a different channel than the URL.

Quick Reference

# Basic publish (outputs local HTML file)
gbrain publish brain/companies/acme.md

# Password protected (auto-generate password)
gbrain publish brain/companies/acme.md --password

# Password protected (specific password)
gbrain publish brain/companies/acme.md --password "secret123"

# Custom title
gbrain publish brain/companies/acme.md --password --title "Acme -- Deal Analysis"

# Custom output path
gbrain publish brain/companies/acme.md --out /tmp/acme-share.html

What Gets Stripped

The publish command automatically removes all private/internal data:

StrippedExampleWhy
YAML frontmattertitle:, type:, tags:Internal metadata
[Source: ...] citationsAll formatsProvenance is internal
Confirmation numbersABC123DEF -> "on file"PII/booking data
Brain cross-links[Jane](../people/jane.md) -> JaneInternal paths
Timeline sectionEverything below --- / ## TimelineRaw evidence log
"See also" linesInternal referencesBrain navigation

Preserved: external URLs (https://...), all other content.

Sharing Workflows

Option A: Local file (simplest)

gbrain publish brain/people/jane-doe.md --password --out ~/Desktop/jane-briefing.html

Share the HTML file via email, Slack, Airdrop. Share the password separately.

Option B: Upload to cloud storage

# Publish locally first
gbrain publish brain/companies/acme.md --password "secret" --out /tmp/acme.html

# Upload to Supabase Storage
gbrain files upload /tmp/acme.html --page shares/acme

# Get a signed URL (1-hour expiry)
gbrain files signed-url shares/acme/acme.html

Share the signed URL + password. URL expires in 1 hour. Re-generate as needed.

Option C: Static hosting (Render, Netlify, S3)

Upload the HTML file to any static hosting service. The file is self-contained, no server logic needed. Password-protected files work entirely client-side via Web Crypto API.

Option D: GitHub Pages / Gist

gbrain publish brain/trips/japan-2026.md --out trip.html
# Upload to a GitHub Gist or Pages repo

Password Protection Details

  • Algorithm: AES-256-GCM
  • Key derivation: PBKDF2 with 100K iterations, SHA-256
  • Salt: Random 16 bytes per encryption
  • IV: Random 12 bytes per encryption
  • Decryption: Client-side via Web Crypto API (SubtleCrypto)
  • No server auth needed -- the HTML file is self-contained
  • "Remember on this device" -- saves password in localStorage

When encrypted, the published HTML contains ONLY ciphertext. The plaintext is not present anywhere in the file.

Updating a Published Page

Re-run the publish command with the same output path:

gbrain publish brain/companies/acme.md --password "same-password" --out shares/acme.html

Same file, same URL (if hosted), updated content.

Revoking Access

Delete the file. If using signed URLs, the URL expires automatically (1 hour). If using static hosting, remove the file from the host.

When it fails

Follow the agent operator protocol for any gbrain error code, exit code, [AGENT] block or notice block. Specific to this skill:

  • The source page returns page_not_found: resolve the real slug first; never publish a guessed page.
  • gbrain files upload / gbrain files signed-url fails (storage not configured, bucket_not_found): tell the user publishing needs storage and run gbrain doctor --json; do not paste private page content instead.

Anti-Patterns

  • Publishing without encryption. Brain content is private. Default to password-protected unless the user explicitly says "open", "no password", or "public".
  • Sharing password and URL in the same channel. Always share the password via a different channel than the URL for security.
  • Assuming the user wants raw markdown. The publish command produces beautiful HTML. Don't copy-paste markdown when gbrain publish exists.
  • Including internal metadata. Never manually share content that contains frontmatter, source citations, or timeline sections. Let the publish command strip it.

Output Format

PUBLISHED: [page title]
========================

File: [output path]
Encrypted: [yes (AES-256-GCM) / no]
Password: [auto-generated password / user-provided / none]
Size: [file size]

Share the file via: [email / Slack / Airdrop / cloud upload]
Share the password via: [a different channel]

Tools Used

  • gbrain publish -- deterministic HTML generation (no LLM calls)
  • gbrain files upload -- upload to cloud storage (optional)
  • gbrain files signed-url -- generate access links (optional)

评价

还没有评价。欢迎分享你的使用感受。

评论

无需登录即可发表。欢迎分享使用感受、提问,或说明在哪些环境下无法运行。

还没有评论。来写第一条吧。

提交后会立即公开。请勿填写邮箱、电话等个人信息。URL 最多 2 个。

0 / 1000 字

此表单受 reCAPTCHA 保护,适用 Google 的隐私权政策和服务条款。

同一仓库的技能

Check research claims cited in books, articles, or conversations by tracing the original paper, methods, underlying data, and independent replication. Save a sourced assessment explaining whether the claim holds up and what remains uncertain.

中文简介正在准备中。当前显示英语简介。

  • Check a study cited in a book
  • Trace a numerical claim in an article to its source data
  • Verify research evidence before using it in writing
garrytan/gbrain3.1万2026年10月20日 更新

Explore old files and email archives to rediscover personal writing, ideas, and meaningful conversations. Review selected items one at a time, save worthwhile material as organized notes, and track progress within explicitly permitted folders.

中文简介正在准备中。当前显示英语简介。

  • Rediscover old journals and creative writing
  • Find meaningful letters and email conversations
  • Recover past product and business ideas
garrytan/gbrain3.1万2026年10月20日 更新

Restructure raw article text stored in gbrain into summaries, exact quotes, key insights, and links to related pages. Preserve the original text and connect the article's significance to projects and interests already recorded in gbrain.

中文简介正在准备中。当前显示英语简介。

  • Organizing saved articles into readable notes
  • Collecting exact quotes for essays
  • Connecting articles to current projects
garrytan/gbrain3.1万2026年10月20日 更新

ask-user

免费

Present clear choices when a task needs a human decision, then pause execution until the user replies. This reusable interaction pattern supports filing decisions, priority selection, and confirmation before destructive actions, with an option to decline.

中文简介正在准备中。当前显示英语简介。

  • Clarifying requests with several possible meanings
  • Confirming before bulk deletion or overwriting
  • Choosing where to file meeting notes
garrytan/gbrain3.1万2026年10月20日 更新

Collect public posts across a blog, newsletter, or feed archive and save clean Markdown pages for each article. The workflow avoids duplicates, supports resumed runs, repairs empty results, and hands articles to a separate enrichment skill.

中文简介正在准备中。当前显示英语简介。

  • Importing a blog's public article archive
  • Organizing public newsletter posts as knowledge pages
  • Rerunning a feed import without duplicates
garrytan/gbrain3.1万2026年10月20日 更新

Create a detailed chapter-by-chapter reading companion from an EPUB or PDF, connecting the book’s ideas to experiences and words saved in your personal knowledge store. The result highlights parallels without prescribing actions.

中文简介正在准备中。当前显示英语简介。

  • Connect a book’s ideas to personal experiences
  • Review detailed chapter summaries alongside personal reflections
  • Create a parent’s guide for reading a children’s book aloud
garrytan/gbrain3.1万2026年10月20日 更新

查看 garrytan 的全部技能

报告此技能的问题