graincrawl
Maintain, verify, and release graincrawl, the local-first Granola archive CLI, including SQLite archive behavior, read-only Granola source boundaries, Homebrew tap packaging, and crawlkit-powered TUI/snapshot surfaces.
What this skill does
# Graincrawl ## Purpose Maintain `graincrawl`, the Go CLI that archives Granola notes, transcripts, panels, people, workspaces, and sync metadata into a private local SQLite store. Keep it read-only against Granola, SQLite-first for browsing/export, and aligned with the other crawl apps. ## When to use - Editing or reviewing `/Users/vincentkoc/GIT/_Perso/graincrawl`. - Investigating Granola source adapters: `private-api`, `desktop-cache`, `encrypted-json`, `opfs`, `public-api`, or `companion-cli`. - Verifying note, transcript, panel, source object, search, Markdown export, or TUI behavior. - Preparing a `graincrawl` release, Homebrew formula, or local binary refresh. - Checking crawlkit control metadata, snapshots, or TUI integration from the app side. ## Workflow 1. Work in `/Users/vincentkoc/GIT/_Perso/graincrawl` unless the user points at a different checkout. Read repo-local `AGENTS.md`, `README.md`, `SPEC.md`, and `docs/security.md` before release, source-adapter, or unlock work. 2. Keep Granola boundaries explicit. Ordinary `doctor`, `status`, `notes`, `export`, and `tui` commands must not prompt Keychain, unwrap safeStorage, or mutate Granola profile files. 3. Use temp `HOME`, temp XDG dirs, temp config, and temp SQLite databases for tests and smoke checks. Do not mutate live `~/.config/graincrawl` archives or Granola app data unless the user explicitly asks. 4. Prefer archived SQLite reads for UI/export behavior. If Markdown export has the data, TUI detail should read that same archived source, not re-query Granola. 5. Run the normal local gate with workspace masking disabled: ```bash GOWORK=off go mod tidy git diff --exit-code -- go.mod go.sum GOWORK=off go vet ./... GOWORK=off go test -count=1 ./... make smoke goreleaser check ``` 6. For release work, use semver tags and verify the tap path: ```bash git tag -a v0.1.0 -m "graincrawl v0.1.0" git push origin main v0.1.0 HOMEBREW_NO_AUTO_UPDATE=1 brew install --build-from-source vincentkoc/tap/graincrawl HOMEBREW_NO_AUTO_UPDATE=1 brew test vincentkoc/tap/graincrawl ``` 7. After app changes, refresh the local binary when requested or when handing off a testable CLI: ```bash GOWORK=off go build -trimpath -o ~/.local/bin/graincrawl ./cmd/graincrawl graincrawl version --json ``` ## Inputs - Target task: app edit, source-adapter investigation, local archive/TUI fix, release verification, tap update, or binary refresh. - Optional version tag such as `v0.1.0`. - Optional temp fixture paths or a copied Granola profile for encrypted/OPFS investigation. ## Outputs - A focused graincrawl change or readiness report. - Validation commands and results. - Explicit notes about any private API, Keychain, safeStorage, OPFS, or live profile boundary crossed. - Tap/release status and local binary path when release or install work is in scope.
Related in General
modeling-omnistudio-epc-catalog
IncludedSalesforce Industries CME EPC product-modeling skill for Product2-based catalog creation. Use when creating EPC products, configuring product attributes, building offer bundles with Product Child Items, or reviewing EPC DataPack JSON metadata for product catalog changes. TRIGGER when: user creates or updates Product2 EPC records, AttributeAssignment payloads, AttributeMetadata/AttributeDefaultValues, Offer bundles, or ProductChildItem relationships. DO NOT TRIGGER when: designing OmniScripts/FlexCards/Integration Procedures (use building-omnistudio-omniscript, building-omnistudio-flexcard, or building-omnistudio-integration-procedure), implementing Apex business logic (use generating-apex), or troubleshooting deployment pipelines (use deploying-metadata).
relationship-science-coach
IncludedUse this skill for direct, practical adult relationship coaching: couples conflict, repair, trust, marriage, dating, flirting, attachment patterns, emotional connection, sex, desire differences, eroticism, kink negotiation, affection, love languages, breakups, and long-term passion. Draw on Gottman, EFT and Hold Me Tight, attachment science, modern sex research, Perel, Nagoski, Kerner, Schnarch, Love and Stosny, and flexible love-language tools. Be concrete and low-hedge. Redirect only for imminent danger, abuse, coercive control, minors, non-consent, self-harm, stalking, or medical/legal/psychiatric decisions.
building-sf-integrations
IncludedSalesforce integration architecture and runtime plumbing with 120-point scoring. Use this skill to set up Named Credentials, External Credentials, External Services, REST/SOAP callout patterns, Platform Events, and Change Data Capture. TRIGGER when: user sets up Named Credentials, External Services, REST/SOAP callouts, Platform Events, CDC, or touches .namedCredential-meta.xml files. DO NOT TRIGGER when: Connected App/OAuth config (use configuring-connected-apps), Apex-only logic (use generating-apex), or data import/export (use handling-sf-data).
venue-templates
IncludedAccess comprehensive LaTeX templates, formatting requirements, and submission guidelines for major scientific publication venues (Nature, Science, PLOS, IEEE, ACM), academic conferences (NeurIPS, ICML, CVPR, CHI), research posters, and grant proposals (NSF, NIH, DOE, DARPA). This skill should be used when preparing manuscripts for journal submission, conference papers, research posters, or grant proposals and need venue-specific formatting requirements and templates.
let-fate-decide
IncludedDraws the 12 Houses of the Zodiac Tarot spread to inject entropy into planning when prompts are vague, ambiguous, or casually delegated. Interprets the spread to guide next steps. Use when the user says 'let fate decide', 'YOLO', 'whatever', 'idk', or other nonchalant phrases, makes Yu-Gi-Oh references, or when you are about to arbitrarily pick between multiple reasonable approaches. Prefer over ask-questions-if-underspecified when the user's tone is casual or playful rather than precision-seeking.
net-ops
IncludedCross-platform network troubleshooting (Windows, macOS, Linux) via local or remote shell. Use for: DNS broken, can't resolve hostnames, nslookup/dig works but apps fail, NRPT, WFP, scutil, /etc/resolver, systemd-resolved, /etc/resolv.conf, NetworkManager, VPN DNS leak residue (ProtonVPN/Mullvad/WireGuard/AnyConnect), AV/firewall blocking DNS or DoH, Tailscale DNS interaction, intermittent connectivity, remote diagnostics over SSH.