Releases: the-sid-dani/second-brain-os
Release list
v0.2.1 — ship 3 missing skills + 2 hooks + PII scrub
Point release — ships three productivity skills and two SessionStart/PreToolUse hooks that should have been in v0.2.0 but were missing from the extractor's allowlist. Plus a PII scrub of the new ship surface caught and fixed before the bundle ever left.
Re-extracted from daily-agents@46729b0.
Skills added (3)
/todo— Task tracking in personal Notion Action Items [DB]. Read-mostly: surfaces today's/tomorrow's tasks (/todo today), supports quick capture (/todo add "..."), and completion (/todo done "..."). Respects PARA-aligned schema (1st-5th Priority, LNO Category, Kanban Status, Projects [DB] relation). Wraps the officialntnCLI + Notion HTTP API. Never creates databases, renames properties, or deletes tasks (only Done/Archived status changes)./end-of-day— Nightly task reconciliation routine. Cross-references today's calendar / meeting transcripts / sent emails / (optionally) Slack outbound messages against open Notion Action Items to propose done-candidates and surface new commitments not yet tracked. Never auto-marks done. Closes the loop where overdue items get done same-day but stay flagged "overdue", or tasks with no due date never surface in "today" views./atlassian-attach— Upload files (screenshots, diagrams, PDFs) as attachments to a Jira issue or Confluence page. Fills the gap the official Atlassian MCP leaves open (no attachment-upload tools). Pure stdlib Python via REST API; pairs naturally with/confluence-publish-markdownand/jira-decompose-epic. Auth viaATLASSIAN_BASIC_AUTH(classic API token only); instance viaATLASSIAN_INSTANCEenv or--instance <name>CLI flag.
Hooks added (2)
session-start-tasks.mjs— SessionStart hook injects current Notion task state (overdue + due today, 1st Priority) into session context so the assistant is always aware of pending tasks before responding. Fails silently ifNOTION_API_TOKEN/NOTION_ACTION_ITEMS_DSenv vars are missing. Pairs with/todo.pre-slack-draft-contact-check.mjs— PreToolUse hook that, when drafting/sending a Slack message to a known contact, emits the contact-file context to stderr so the model sees relationship + open commitments + tone notes BEFORE the draft lands. Requires a.claude/.slack-id-map.json(Slack user IDs → contact slugs) and contact files at<workspace.root>/3-Resources/contacts/<slug>.md. Auto-discovers workspace root via glob — works for any workspace name set by/bootstrap.
Changed
scripts/extract-template.shallowlist: 45 → 48 skills, 7 → 9 hooks copied.atlassian-attach/scripts/attach.py: removed hardcodedsambatvAtlassian-subdomain default; now empty default with clear error pointing toATLASSIAN_INSTANCEenv or--instanceflag.
PII scrub (caught + fixed before extraction)
- Hooks: "Beru is always aware" → "the assistant is always aware"; "When Sid says..." → "When the user says..."; named-incident narrative in
pre-slack-draft-contact-checkheader rewritten to generic setup instructions. /todo:"Samba TV workspace"+siddani09@gmail.comreference rewritten;"Sid promised X to Y"example →<user.name> promised X to Y./todo/lib/ntn.sh:"Sid's convention from MEMORY"→"PARA-aligned convention"./atlassian-attachdocs:sambatv.atlassian.netURLs →acme.atlassian.net;AITF-450examples →PROJ-450.
Upgrading
git pull
# No installer re-run needed — the new skills/hooks load on next claude launch.The two new hooks are already wired in .claude/settings.json and fail silently if their setup is missing — so they're zero-config and zero-friction for fork users who haven't opted in.
Acceptance gate
All three extractor Phase 10 leakage passes (PII / path-refs / T1 invariant) clean on this export.
🤖 Generated with Claude Code
v0.2.0 — simplify install + bootstrap
The big one. Knowledge-worker default tier now ships in ~3-5 minutes. CCv4 toolchain (Rust/uv/bloks/tldr/FastEdit) is opt-in via --with-coding. Bootstrap slimmed 929 → 498 LOC. .mcp.json ships with 3 universal MCPs only — zero red errors on a fresh fork's first claude launch.
Re-extracted from daily-agents@f958d29.
Headlines
- Tier model.
./scripts/install.sh= minimal (knowledge-worker default)../scripts/install.sh --with-coding= adds Rust + uv + bloks + tldr + FastEdit MCP. Tier markerSBOS_TIER=minimal|codinglands in~/.second-brain-os.envand/bootstrapStep 2 reads it. - Bootstrap slimmed 929 → 498 LOC (-46%). 8 narrated steps merged to 6. T1-T4 invariants preserved canonically with point-of-use refs. Affective moments ("Meet your assistant:" echo-back; voice-synthesis preview-before-write gate) preserved verbatim.
assistant.pronounfield added (she / he / they / no-pronouns). All<him/her/them>placeholder literals eliminated..mcp.json3-universal defaults — gemini-vision (local stdio), exa (HTTP), firecrawl (HTTP). Slack/Atlassian/Figma are opt-in via bootstrap Step 2.5 multi-select; canonical entries live in.mcp.json_notes.opt_in_*as the single source of truth.firecrawlMCP added as the third universal default (https://mcp.firecrawl.dev/v2/mcp). Auth viaFIRECRAWL_API_KEYshell env.
Added
--with-codingtier flag +SBOS_TIERmarker--with-ripgrepopt-in flag (ripgrep no longer auto-installed;/findfalls back togrep -r)- ASCII logo opener + closing summary card + duration +
~/.claude/install.logtee --doctorflag (working stub in v0.2.0 — read-only probe of foundation/tier/coding-tier/MCP/log; full implementation in v0.3.0)assistant.pronounConfiguration token- Day 2+ rhythms externalized to
beru-workspace/3-Resources/onboarding/day-2-plus.md - Bootstrap Step 2.5 — interactive MCP opt-in multi-select for Slack/Atlassian/Figma
firecrawlMCP in.mcp.jsondefaultsGEMINI_API_KEYandFIRECRAWL_API_KEYin.env.example(and the matching HEREDOC inscripts/lib/api-keys.sh)
Changed
- Bootstrap SKILL.md rewritten — 8 → 6 steps; T1-T4 canonical-only with single-line step-header refs; failure-modes table 18 → 10 rows; Step 4b voice synthesis collapsed three branches into one spec with the preview-before-write gate preserved
INSTALL.mdrewritten for the tier model — Path A (minimal) + Path B (coding)README.mdForking section reframed as 2-layer install (system tools / persona + workspace)README-template.mdaligned with tier model (collapsed old Lite-CCv4 / Full paths into single--with-codingflag).env.examplesectioned by purpose (default-MCP keys / skill-only keys / opt-in connector keys), 7 keys totalTOOLS.mdMCP + env sections rewritten; SBOS_TIER + FIRECRAWL_API_KEY documentedscripts/lib/api-keys.shno longer prompts — writes annotated.env.exampleonly
Removed
- ffmpeg + yt-dlp auto-install (zero active skills consumed them; pre-existing brew installs untouched)
- Slack / Atlassian / Figma from default
.mcp.jsonmcpServers(still available via bootstrap Step 2.5 opt-in) - ffmpeg / yt-dlp probes from
verify.sh
Deferred to v0.3.0
- Cross-platform Python rewrite + Windows port (W4)
- Full
--doctorimplementation with remediation hints (W5)
Upgrading
git pull
./scripts/install.sh # if you want the minimal-tier upgrade path
./scripts/install.sh --with-coding # if you want the full toolchainThe installer is idempotent and additive — existing forks get the new tier marker written automatically; nothing else regresses.
Acceptance gate
- Bootstrap LOC < 500 ✅ (498)
- 3 default MCPs ✅
- Tier gating + SBOS_TIER marker ✅
- Zero "what's bloks?" jargon on minimal tier ✅
- Extractor PHASE 10 leakage scan: PII clean, path-refs clean, samba-tools-setup clean ✅
- shellcheck + bash syntax +
--help+--doctorsmoke: all green ✅ - Fresh-VM empirical M1/M2 (time-to-first-
/briefing< 15 min; default install < 5 min): structurally gated, recommend fork users measure on their own machine
🤖 Generated with Claude Code
v0.1.23 — remove dead Phase 6 env-path sed step
Removed
- Extractor's Phase 6
~/.daily-agents.env→~/.second-brain-os.envsed step — added in v0.1.20 to compensate for72e9129(which had drifted the atlassian-skill env paths to.daily-agents.env). Sincefca6c97reverted the source files back to.second-brain-os.envdirectly, the sed had become a no-op. 12 lines of dead defensive code removed. Phase 10'sdaily-agentsleakage scan still catches accidental regressions if any future commit reintroduces the wrong path.
Notes
- Extractor-only change. No skill bodies, hooks, root docs, or installer affected.
v0.1.22 — README restructure (concepts first, /bootstrap as central step)
Changed
- README restructured to lead with concepts, not commands. The v0.1.21 README jumped straight into the install tier table + 3 install commands before explaining what the OS is, what a "skill" is, or what
/bootstrapdoes. Fork users landed on a wall of shell commands without context. New structure:- What is this? (concept first)
- How it works — new section explaining the three layers (skills / PARA workspace / Configuration tokens) and the two-stage setup model (shell
install.shfor power-user toolchain, Claude/bootstrapfor personalization) - Install — now framed as "you're trying to reach
/bootstrap; everything else is plumbing." Path A (Minimal) isclone → cd → claude → /bootstrap; Path B (Lite CCv4) adds./scripts/install.sh --no-fastedit-modelbeforeclaude; Path C (Full) drops the flag. - The PARA workspace — explains each of the 5 folders (
0-Inbox,1-Projects,2-Coding,3-Resources,4-Archive) with a "what goes in it" + "why it exists" column. New callout that/bootstrapcreates the empty folder skeleton; skills own the content. - Reference sections (Project map, Configuration tokens, Update Rules, What's included, Quick reference) come after.
/bootstrapreframed as the central setup step. Previous README treatedinstall.shand/bootstrapas equally-weighted install steps. The new framing:/bootstrapis THE step that personalizes the OS to you;install.shis optional plumbing that only matters if you want/research,/autonomous,/premortem,/review. Minimal-tier users skipinstall.shentirely.
Notes
- README-template.md grew from 438 → 482 lines (+44, mostly the new "How it works" section).
- No skill bodies, hooks, or scripts changed in v0.1.22 — README-only release.
v0.1.21 — branding sweep + decision-# cleanup
Changed
- Persona templates rebranded to "Second-Brain OS". Fork users were seeing the old "Second-Brain Harness" name in their regenerated
CLAUDE.mdandREADME.md(CLAUDE-template.md heading + body, README-template.md heading) — leftover from the v0.1.18 rename that didn't catch the templates. Fixed at the source so the next/bootstrapproduces correctly-branded persona files. - Removed stale
hyperframesreferences from the shipped bundle. Thedesign-hyperframesskill was dropped in v0.1.13 (external HeyGen tool), but the name lingered inTOOLS-template.md("video/transcript flows (hyperframes, transcript-extract.sh)"),INSTALL.md("ffmpeg for video encoding (used by hyperframes / design skills)"), and aREADME-template.mdexample query ("what did I save about Hyperframes?"). Cleaned in 3 spots. .env.exampleheader "Second-brain-harness API keys" → "second-brain-os API keys".- EXAMPLE-CONFIG.md now documents the
assistant.vibefield (was missing from the example block and field-reference table —vibeis referenced in CLAUDE.md Configuration but the worked example didn't show it). - Stray
decision #Nandsystem-design.mdcross-references scrubbed from 6 shipping skills (thinking-partner,archive-project,save-resource,new-project,sync-indexes,briefing). These were parenthetical citations like "per decision #15", "decision #23 token-isolation", "Locked by decision #22" — fork users don't have thesystem-design.mdsource file the numbers reference. The principles remain in the skill bodies as principles; the broken citations are gone. Legitimate references tosystem-design.mdas a user-input file (injira-decompose-epic,scaffold-engineering-project,confluence-publish-markdown— where the user's own design doc is the expected input) are preserved.
Notes
- This was a polish-pass surfaced by manual review of the v0.1.20 export — the v0.1.20 release already had these residual refs; the bundle worked fine but the wording was sloppy for first-time forkers. v0.1.21 is the cleanup.
v0.1.20 — installer rebrand + os-guide cleanup + colleague-name scrub
Changed
- Installer rebrand — fork users now see "Second-Brain OS Installer" instead of "Samba Onboarding". Stale
samba-onboarding-named language was leaking into the user-facing surfaces of the v0.1.19 bundle — the installer header, log file (~/samba-onboarding.log), shell-rc comment block, runtime "samba-onboarding artifacts detected" message, and theINSTALL.mdtroubleshooting section all referenced the company-internal install tool that fork users don't have. Renamed in 6 files:scripts/lib/ui.sh(header + subtitle + log filename),scripts/lib/prereqs.sh(shell-rc comment + stale "Installing Samba CLIs" reference),scripts/lib/verify.sh(post-install hints),scripts/install.sh(top-of-file comment + variable renameSAMBA_DONE→FOUNDATION_INSTALLED+ foundation-detection message),INSTALL.md(troubleshooting section), andberu-workspace/3-Resources/templates/scripts/transcript-extract.sh(comment). Detection logic widened fromgh + gws + claudetogh + claude(gws isn't shipped in this bundle). os-guideskill body genericized. Removed ~15 abstractdecision #Nandsystem-design.mdcross-references that wouldn't resolve for fork users (the design log is maintainer-private). Skill remains operative: still routes OS-shaped questions to canonical sources, still cites with file:line refs. Dropped the "Locked design decisions" routing-table subsection entirely (was Sid-private). Replaced "After locking a new decision insystem-design.md§7" with "in your fork's design log (if you keep one)". Cleaner for forkers, no functional change for the maintainer.- Contact-skill examples genericized to placeholder names.
contact/SKILL.mdandcontact-log/SKILL.mdtaught the fuzzy-match algorithm using literal Samba colleague names (Omar Zennadi / Jaya Aswani / Alyson Sprague / Bob van Toorn / Lena Kincaid / Michael Zennadi). Replaced consistently across the skill bodies with placeholder names (Alex Chen / Priya Patel / Jordan Rivera / Robin van Pelt / Lena Okoye / Michael Chen + michele anti-regression example) that preserve the algorithmic structure including the substring-vs-token anti-regression rule. - Briefing skill body genericized.
briefing/SKILL.md: 9 literal "Sid" references replaced with<user.name>or "the user"; tagline examples changed from "Omar's waiting on you" to "Alex is waiting on you"; the "Origin incident" callout that named real colleagues (Bob/Jay/Walter/Phillip group DM) replaced with the abstract "a multi-person DM thread containing the highest-leverage open question was invisible" version that preserves the technical lesson. - External-action-guard hook message changed from "explicit Sid approval" to "explicit user approval".
Fixed
scripts/lib/prereqs.shinstall_jqcomment referencedvalidate_oauth_jsonand "step 5 (Installing Samba CLIs)" — neither exists in the public bundle. Rewrote to point at the real consumers (.claude/tools/*, extract-template.sh settings-filter, MCP config parsing).
Known issues remaining (cosmetic)
- Brand-preset count in v0.1.19 CHANGELOG narrative says 72 but the actual export ships 73. Cosmetic.
v0.1.19 — os-guide skill + external-action-guard hook
Added
os-guideskill — runtime-read librarian over the OS's canonical source files. Answers "how does X work in this OS?" by routing the question to its canonical source (CLAUDE.md / README.md / SOUL.md / TOOLS.md / SKILL.md files), reading at runtime, and citing with file:line refs. Two-audience design: (a) Claude Code self-correcting mid-session before writing an OS-shaped claim from memory, (b) fork users in their first 30 days. Read-only by default;/os-guide --syncis the only mutation mode and refreshes the routing table after new tools / skills / brands / decisions are added. Locked principle: explainer skills must be runtime-read librarians, not textbooks — referencing canonical sources, never reproducing them.external-action-guard.mjshook — PreToolUse show-and-confirm friction on irreversible external actions: Slack send (mcp__slack__slack_send_message+slack_schedule_message), GitHub destructive push (git push --forceorgit pushtargeting main/master), Atlassian writes (Jira issue create/edit/transition + Confluence page create/update),rm -rfoutside whitelisted paths (/tmp/,node_modules/,__pycache__/,.venv/,dist/,build/,.tldr/,.workflow/). EmitspermissionDecision: "ask"via modernhookSpecificOutputformat — block is show-and-confirm, not show-and-deny. Goal: friction at the moment of action, not refusal. Fails open on any error./os-guideconsult section in CLAUDE-template.md — tells Claude to invoke/os-guideinstead of answering OS-shaped questions from memory. Specifically applies before writing a workspace path, Configuration value, schema field, skill-behavior claim, or tool-connection-state claim into a user-facing response.- "What is PARA in this OS?" section in README-template.md — table explaining the 5-folder workspace layout (
0-Inbox,1-Projects,2-Coding,3-Resources,4-Archive) with a Configuration-token bridge and a "Areas was deliberately cut" callout. Helps fork users distinguish the in-this-OS implementation from Tiago Forte's generic PARA framework. - "How to add a tool" section in TOOLS-template.md — step-by-step guide for adding MCP servers (declare in
.mcp.json→ authorize via/mcp→ probe → flip status →/os-guide --sync) and CLI tools (install → auth probe → add row →/os-guide --sync). Plus a "Removing a tool" subsection. Each path has a verification probe baked in. - Two new Quick Reference rows in README-template.md —
/os-guidefor understanding how X works in this OS,/os-guide --syncfor refreshing the routing table after additions. /os-guideDay 1 + Day 2+ mentions inbootstrapSKILL.md — Day 1 onboarding now points fork users at/os-guideafter/bootstrap, and Day 2+ rhythms list/os-guide --syncas the after-adding-a-tool follow-up.
Changed
SHIPPED_SKILLSallowlist — 44 → 45 skills. Addedos-guideto the first-party group (15 → 16).os-guideskill body genericized — replaced literalberu-workspace/paths with<workspace.root>/<workspace.resources>/token forms in 7 locations (line references in canonical source listings, citation examples, the PARA disambiguation question). Removed the "Locked design decisions" subsection that referenced Sid's private design project (2026-05-second-brain-design/system-design.md). Decision-numbered references (decision #N) elsewhere in the skill body are left as-is for this release — they don't break the leakage scan but are broken cross-refs for fork users; cleanup deferred to a future release.external-action-guard.mjsspec comment — genericized to drop the path reference to Sid's private design project.
Removed
pii-leak-guard.mjsnot shipped in the public bundle. The hook hardcodes Sid's PII patterns (sid.dani,Siddharth,@samba.tv) as the literal regexes it guards against. Useful for the maintainer's local workspace but useless and confusing to fork users (it would warn about leaking someone else's PII). Kept in the maintainer's local tree; not copied byextract-template.sh. The corresponding hook registration in.claude/settings.jsonis stripped via a newjqfilter step in the extractor so the public bundle doesn't ship a dangling hook reference. Re-introduce as a config-driven generic (pattern file or env var) in a future release.
Infrastructure
- Extract-template.sh hook copy list updated —
pii-leak-guardremoved from the for-loop at PHASE 2.5;external-action-guardretained. Newjqpost-copy filter on.claude/settings.jsondrops thePreToolUsehook block whosecommandreferencespii-leak-guard.mjs. Filter is no-op-safe (handles missing jq gracefully viawarn).
v0.1.11 — SKILL.md frontmatter cleanup + briefing v0.2.0 HTML + CCv4 port
What changed
SKILL.md frontmatter cleanup (verified against authoritative Claude Code docs)
- Removed
context: forkfrom 14 first-party skills. The field is real but only takes effect when paired withagent:— without that companion, Claude Code silently ignores it. Was vestigial. - Added per-skill
allowed-toolsto 15 high-impact skills (briefing, bootstrap, find, contact, contact-log, new-project, archive-project, prune-projects, inbox-process, save-resource, sync-indexes, thinking-partner, samba-publish, company-research, people-research).allowed-toolsgrants no-prompt access to listed tools when a skill is active. Total skills withallowed-tools: 4 → 19.
Top-5 SKILL.md description trims (~7,478 chars / ~1,870 tokens reclaimed)
- `briefing` 2941 → 803 chars
- `bootstrap` 2921 → 897 chars
- `contact-log` 2006 → 658 chars
- `contact` 1743 → 754 chars
- `inbox-process` 1609 → 630 chars (was being dropped from session listing)
Trigger phrases, invariants, composition notes, and historical pointers moved out of description into SKILL.md body where they belong.
`/briefing` v0.2.0 — HTML output
Output switched from `morning-briefing-YYYY-MM-DD.md` to `.html`. Self-contained DOM with `data-od-id` slugs follows the `design-dashboard` pattern (sidebar nav + topbar + KPI row + section panels + Tools-used footer). No `<script>`, no external links/fonts/CSS, no `http://`, inline SVG only.
Atlassian skill scripts parameterized
`jira-decompose-epic` (renamed from `jira-create-vertical-slices`), `scaffold-engineering-project`, and `confluence-publish-markdown` now read `ATLASSIAN_BASE_URL` (and `ATLASSIAN_CONF_SPACE`) from env with `` placeholder fallback. No more hardcoded `sambatv.atlassian.net` references.
New skills + hooks (CCv4 port)
New skills: `autonomous`, `autonomous-research`, `bootup`, `create-handoff`, `jira-decompose-epic` (renamed), `premortem`, `research`, `resume-handoff`, `review`, `upgrade-harness`.
New hooks: `auto-handoff-stop`, `post-edit-diagnostics`, `pre-compact`, `status`, `tldr-read` + shared lib.
Install
```bash
git clone https://github.com/the-sid-dani/second-brain-harness
cd second-brain-harness
claude
```
Then run `/bootstrap` for first-time setup.
v0.1.10 — trim to 68 skills (drop recipe-* + niche gws-*)
What's new
Re-trim the v0.1.9 bundle to a leaner 68 skills based on a critical re-assessment of the recipe-* and gws-* skill families.
Net: 117 → 68 skills (-49 dropped, +0 added)
Dropped — 38 recipe-* skills (all of them)
Each recipe was ~27-29 lines — thin "use gws-X and gws-Y together for Z" tutorials. Claude composes the same flows on the fly from the underlying gws-* primitives without needing the recipe pre-baked. The recipes didn't add value over Claude's native composition; they bloated the skill registry for routing.
If you want a specific recipe locally, gws generate-skills recreates them all in ~/.claude/skills/ based on the gws CLI's recipe catalog.
Dropped — 11 niche gws-*
| Family | Why dropped |
|---|---|
gws-tasks |
Google Tasks is niche vs Jira / Linear / Asana for most teams |
gws-chat, gws-chat-send |
Google Chat Spaces — most teams use Slack (and the harness has a Slack MCP) |
gws-script, gws-script-push |
Google Apps Script — developer-niche |
gws-workflow + 5 variants |
Overlap with the recipe-* composition pattern that's also dropped |
Kept — 21 gws-* (universal-utility primitives)
- Gmail (8):
gws-gmail,gws-gmail-forward,gws-gmail-read,gws-gmail-reply,gws-gmail-reply-all,gws-gmail-send,gws-gmail-triage,gws-gmail-watch - Calendar (3):
gws-calendar,gws-calendar-agenda,gws-calendar-insert - Drive (2):
gws-drive,gws-drive-upload - Docs (2):
gws-docs,gws-docs-write - Sheets (3):
gws-sheets,gws-sheets-append,gws-sheets-read - Slides (1):
gws-slides - Meet (1):
gws-meet - Shared helper (1):
gws-shared(referenced by all gws-* skills for auth + global flags)
New total: 68 skills
| Category | Count |
|---|---|
| First-party | 15 |
| Design | 26 |
| Atlassian | 3 |
| Research | 2 |
| samba-publish | 1 |
| gws-* | 21 |
| Total | 68 |
Why this trim makes sense
The previous v0.1.9 bundle added 70 skills (32 gws-* + 38 recipe-*) to make the workspace "batteries included." But:
- 38 recipe- skills were thin tutorials, not real skills.* Claude composes
forward labeled emails to Xfrom the gws-* primitives without needing a 27-line recipe pre-baked. - 11 gws- families don't match most fork users' actual usage* — Google Tasks/Chat/Script/Workflow are either replaced by other tools (Jira, Slack) or developer-niche.
v0.1.10 is a more honest bundle: ship the primitives that have utility (Gmail, Calendar, Drive, Docs, Sheets, Slides, Meet) and let Claude compose them on demand.
What stayed the same
/briefinggraceful degradation (v0.1.7 T4) — still gates oncommand -v gws- v0.1.8 workspace folder READMEs — still ship
- v0.1.8 manual 3-line install flow — unchanged
- v0.1.9 persona-* removal — still removed (fork users pick persona via
/bootstrap)
🤖 Generated with Claude Code
v0.1.9 — bundle gws-* + recipe-* skills, remove persona-*
What's new
Re-shape the skill bundle to make the Google Workspace toolchain available out of the box.
Net skill count: 57 → 117 (+70 added, -10 removed)
Added — 32 gws-* skills
Google Workspace CLI wrappers (Gmail, Calendar, Drive, Docs, Sheets, Slides, Tasks, Chat, Meet, Script, Workflow). Each requires the gws CLI on PATH:
brew install googleworkspace-cli
gws auth login -s drive,gmail,calendar,sheets,docs,chat,tasks,slides/briefing already gates on command -v gws for graceful degradation (v0.1.7 T4 invariant) — fork users without the CLI will see Gmail/Calendar sections silently skip; users with it get them auto-composed.
Added — 38 recipe-* skills
Composed multi-step workflows over the gws-* primitives. Examples:
/recipe-forward-labeled-emails— find Gmail messages by label, forward to a list/recipe-block-focus-time— recurring Calendar focus blocks/recipe-share-doc-and-notify— Drive permission + Gmail send in one step/recipe-find-free-time— query Calendar free/busy for multiple users/recipe-create-vacation-responder— Gmail out-of-office with custom message + dates/recipe-batch-invite-to-event— add attendees to a Calendar event from a list/recipe-create-events-from-sheet— read events from a Google Sheet, create Calendar entries
Full list of 38 in the commit message.
Removed — 10 persona-* skills
Intentional. Fork users pick their own persona during /bootstrap (identity + role + vibe + emoji). The role-modeled persona skills weren't carrying their weight relative to the bootstrap-driven model.
Removed: persona-content-creator, persona-customer-support, persona-event-coordinator, persona-exec-assistant, persona-hr-coordinator, persona-it-admin, persona-project-manager, persona-researcher, persona-sales-ops, persona-team-lead.
NOT bundled (intentional)
10 niche gws-* skills not shipped — available locally via gws generate-skills if a fork user needs them, but most users don't have access to the underlying feature:
gws-admin-reports(Workspace admin only)gws-classroom(educators only)gws-events,gws-events-renew,gws-events-subscribe(Workspace Events API)gws-forms(programmatic Forms management)gws-modelarmor+ 3 variants (GCP Model Armor security)
3 recipe-* orphans also dropped because they composed the niche gws-* above: recipe-collect-form-responses, recipe-create-feedback-form, recipe-create-classroom-course.
What stayed the same
- 15 first-party skills (
/briefing,/find,/contact,/new-project, etc.) — unchanged - 26 design skills, 3 Atlassian skills, 2 research skills, samba-publish — unchanged
- v0.1.8 workspace folder READMEs — unchanged
- v0.1.7 /briefing graceful degradation — unchanged
- v0.1.8 install flow (manual 3-line primary) — unchanged
Verification
- 117 skills copied (0 missing)
- Phase 6 (Sid/Beru leakage) — clean
- Phase 10 (PII + path refs) — clean
- gws-* and recipe-* symlinks dereferenced into real SKILL.md files via
cp -RL
🤖 Generated with Claude Code