mirror of
https://github.com/garrytan/gbrain.git
synced 2026-07-27 22:15:33 +00:00
v0.25.1 foundation: scaffolds + manifests + filing-doctrine update
Foundation commit for v0.25.1 skills wave (book-mirror flagship + 8 research pairings). All content is scaffold-stage; subsequent commits port wintermute SKILL.md content into pure gbrain idiom. Version bumps: - VERSION 0.24.0 -> 0.25.1 - package.json: version + engines.bun >= 1.3.10 (D14 PTY harness) - openclaw.plugin.json inner version 0.19.0 -> 0.25.1 - bun.lock refreshed 9 skill scaffolds via `gbrain skillify scaffold` (frontmatter + RESOLVER row + routing-eval seed): book-mirror, article-enrichment, strategic-reading, concept-synthesis, perplexity-research, archive-crawler, academic-verify, brain-pdf, voice-note-ingest. Stub .mjs scripts and stub .test.ts files deleted; these are pure-markdown skills, not deterministic-script skills. Real tests will return when src/commands/book-mirror.ts and the other runtime pieces land. skills/manifest.json + openclaw.plugin.json skills[]: 9 new entries (codex T6 fix; required by test/skillpack-sync-guard.test.ts). D13 filing-doctrine update: - skills/_brain-filing-rules.md: carve out media/<format>/<slug> as a sanctioned exception for sui-generis synthesized output. - skills/_brain-filing-rules.json: add media/books/ and media/articles/ as `synthesis-output` kind, distinct from raw-ingest filing. - skills/media-ingest/SKILL.md: refine anti-pattern callout to clarify that format-prefixed paths are anti-pattern for raw ingest only, sanctioned for one-of-one synthesis. Privacy guard hardening (codex T7): - scripts/check-privacy.sh: extended for /data/brain/ and /data/.openclaw/ wintermute-specific path patterns. 7 historical files allow-listed (frozen migrations, test fixtures, env-var fallbacks). PRIVACY OK passes. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.7
parent
4fc1246606
commit
b438a7c4dd
+10
-1
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "gbrain",
|
||||
"version": "0.19.0",
|
||||
"version": "0.25.1",
|
||||
"description": "Personal knowledge brain with Postgres + pgvector hybrid search",
|
||||
"family": "bundle-plugin",
|
||||
"configSchema": {
|
||||
@@ -24,9 +24,15 @@
|
||||
}
|
||||
},
|
||||
"skills": [
|
||||
"skills/academic-verify",
|
||||
"skills/archive-crawler",
|
||||
"skills/article-enrichment",
|
||||
"skills/book-mirror",
|
||||
"skills/brain-ops",
|
||||
"skills/brain-pdf",
|
||||
"skills/briefing",
|
||||
"skills/citation-fixer",
|
||||
"skills/concept-synthesis",
|
||||
"skills/cross-modal-review",
|
||||
"skills/cron-scheduler",
|
||||
"skills/daily-task-manager",
|
||||
@@ -39,6 +45,7 @@
|
||||
"skills/media-ingest",
|
||||
"skills/meeting-ingestion",
|
||||
"skills/minion-orchestrator",
|
||||
"skills/perplexity-research",
|
||||
"skills/query",
|
||||
"skills/reports",
|
||||
"skills/repo-architecture",
|
||||
@@ -47,7 +54,9 @@
|
||||
"skills/skillify",
|
||||
"skills/skillpack-check",
|
||||
"skills/soul-audit",
|
||||
"skills/strategic-reading",
|
||||
"skills/testing",
|
||||
"skills/voice-note-ingest",
|
||||
"skills/webhook-transforms"
|
||||
],
|
||||
"shared_deps": [
|
||||
|
||||
+4
-1
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "gbrain",
|
||||
"version": "0.24.0",
|
||||
"version": "0.25.1",
|
||||
"description": "Postgres-native personal knowledge brain with hybrid RAG search",
|
||||
"type": "module",
|
||||
"main": "src/core/index.ts",
|
||||
@@ -77,5 +77,8 @@
|
||||
"trustedDependencies": [
|
||||
"@electric-sql/pglite"
|
||||
],
|
||||
"engines": {
|
||||
"bun": ">=1.3.10"
|
||||
},
|
||||
"license": "MIT"
|
||||
}
|
||||
|
||||
@@ -26,6 +26,14 @@
|
||||
set -euo pipefail
|
||||
|
||||
BANNED_NAME='wintermute'
|
||||
# v0.25.1 (codex T7): additional patterns from wintermute-specific filesystem
|
||||
# layouts that would leak private fork context if they slipped through a port.
|
||||
# `wintermute_only` already matches via the case-insensitive `wintermute` regex
|
||||
# above; this list is for orthogonal patterns.
|
||||
BANNED_PATHS=(
|
||||
'/data/brain/'
|
||||
'/data/.openclaw/'
|
||||
)
|
||||
|
||||
usage() {
|
||||
cat <<EOF
|
||||
@@ -92,6 +100,18 @@ ALLOW_LIST=(
|
||||
'llms-full.txt'
|
||||
'docs/UPGRADING_DOWNSTREAM_AGENTS.md'
|
||||
'test/integrations.test.ts'
|
||||
# v0.25.1 (codex T7) BANNED_PATHS allow-list:
|
||||
# Historical docs, frozen migration files, test fixtures, and env-var
|
||||
# fallbacks where /data/brain/ or /data/.openclaw/ appears legitimately.
|
||||
# New skills/, src/, and tests must NOT slip onto this list — extend the
|
||||
# banned check above instead.
|
||||
'docs/GBRAIN_RECOMMENDED_SCHEMA.md'
|
||||
'docs/GBRAIN_V0.md'
|
||||
'docs/guides/minions-shell-jobs.md'
|
||||
'scripts/smoke-test.sh'
|
||||
'skills/migrations/v0.9.0.md'
|
||||
'skills/migrations/v0.14.0.md'
|
||||
'test/storage-status.test.ts'
|
||||
)
|
||||
|
||||
is_allowed() {
|
||||
@@ -119,6 +139,14 @@ while IFS= read -r file; do
|
||||
grep -in "$BANNED_NAME" "$file" | sed 's|^| |' >&2
|
||||
FOUND=1
|
||||
fi
|
||||
# Banned wintermute-specific filesystem paths (codex T7).
|
||||
for path in "${BANNED_PATHS[@]}"; do
|
||||
if grep -nF "$path" "$file" >/dev/null 2>&1; then
|
||||
echo "[check-privacy] BANNED PATH '$path' in $file:" >&2
|
||||
grep -nF "$path" "$file" | sed 's|^| |' >&2
|
||||
FOUND=1
|
||||
fi
|
||||
done
|
||||
;;
|
||||
esac
|
||||
done <<< "$FILES"
|
||||
|
||||
@@ -103,3 +103,25 @@ These apply to ALL brain-writing skills:
|
||||
- `skills/conventions/subagent-routing.md` — when to use Minions vs inline work
|
||||
- `skills/_brain-filing-rules.md` — where files go
|
||||
- `skills/_output-rules.md` — output quality standards
|
||||
|
||||
## Uncategorized
|
||||
|
||||
| Trigger | Skill |
|
||||
|---------|-------|
|
||||
| "personalized version of this book" | `skills/book-mirror/SKILL.md` |
|
||||
|
||||
| "enrich this article" | `skills/article-enrichment/SKILL.md` |
|
||||
|
||||
| "strategic reading" | `skills/strategic-reading/SKILL.md` |
|
||||
|
||||
| "concept synthesis" | `skills/concept-synthesis/SKILL.md` |
|
||||
|
||||
| "perplexity research" | `skills/perplexity-research/SKILL.md` |
|
||||
|
||||
| "crawl my archive" | `skills/archive-crawler/SKILL.md` |
|
||||
|
||||
| "verify this academic claim" | `skills/academic-verify/SKILL.md` |
|
||||
|
||||
| "make pdf from brain" | `skills/brain-pdf/SKILL.md` |
|
||||
|
||||
| "voice note" | `skills/voice-note-ingest/SKILL.md` |
|
||||
|
||||
@@ -86,6 +86,18 @@
|
||||
"directory": "openclaw/",
|
||||
"examples": ["agent-state notes"],
|
||||
"description": "Notes about the host OpenClaw agent itself, not the underlying entities."
|
||||
},
|
||||
{
|
||||
"kind": "synthesis-output",
|
||||
"directory": "media/books/",
|
||||
"examples": ["personalized book mirrors", "two-column chapter analyses"],
|
||||
"description": "Sanctioned exception to 'file by primary subject' for sui generis synthesized output that is one-of-one to a single book and a specific reader. Format-prefixed under media/<format>/ is allowed for synthesis output only, never for raw ingest. See _brain-filing-rules.md."
|
||||
},
|
||||
{
|
||||
"kind": "synthesis-output",
|
||||
"directory": "media/articles/",
|
||||
"examples": ["personalized article reads", "long-form content tailored to reader"],
|
||||
"description": "Same sanctioned exception as media/books/. One-of-one synthesis output of an article personalized for the reader. Distinct from raw article ingest, which goes to the article's primary-subject directory."
|
||||
}
|
||||
],
|
||||
"sources_dir": {
|
||||
|
||||
@@ -23,6 +23,24 @@ not the source, not the skill that's running.
|
||||
| Reusable framework/thesis -> `sources/` | -> `concepts/` | It's a mental model |
|
||||
| Tweet thread about policy -> `media/` | -> `civic/` or `concepts/` | media/ is for content ops |
|
||||
|
||||
## Sanctioned exception: synthesis output is sui generis
|
||||
|
||||
The "file by primary subject" rule is for raw ingest. Synthesized output that
|
||||
is one-of-one to a single source AND a specific reader (a personalized book
|
||||
mirror, a strategic-reading playbook tied to one problem) does not fit any
|
||||
subject directory cleanly: filing by topic loses the "this is the book"
|
||||
dimension; filing by author muddles authorship pages with synthesis pages.
|
||||
|
||||
Format-prefixed paths under `media/<format>/<slug>` are the sanctioned
|
||||
exception:
|
||||
|
||||
- `media/books/<slug>-personalized.md` (book-mirror output)
|
||||
- `media/articles/<slug>-personalized.md` (long-form article personalization)
|
||||
|
||||
If you find yourself wanting `media/<format>/` for raw ingest, that is still
|
||||
the anti-pattern in the table above. The exception is narrow: synthesized,
|
||||
one-of-one, sui generis to a single source.
|
||||
|
||||
## What `sources/` Is Actually For
|
||||
|
||||
`sources/` is ONLY for:
|
||||
|
||||
@@ -0,0 +1,28 @@
|
||||
---
|
||||
name: academic-verify
|
||||
version: 0.1.0
|
||||
description: Verify academic citations and research claims against current literature; routes through perplexity-research for the actual web search and formats results as a citation-checked brain page.
|
||||
triggers:
|
||||
- "verify this academic claim"
|
||||
- "check this study"
|
||||
- "academic verify"
|
||||
- "validate citation"
|
||||
- "is this study real"
|
||||
mutating: true
|
||||
writes_pages: true
|
||||
writes_to:
|
||||
- concepts/
|
||||
---
|
||||
|
||||
# academic-verify
|
||||
|
||||
Verify academic citations and research claims against current literature; routes through perplexity-research for the actual web search and formats results as a citation-checked brain page.
|
||||
|
||||
## The rule
|
||||
|
||||
<!-- SKILLIFY_STUB: replace before running check-resolvable --strict -->
|
||||
Replace this stub with the hard rule that prevents recurrence of the failure that triggered this skill.
|
||||
|
||||
## How to use
|
||||
|
||||
Run the deterministic script: `bun scripts/academic-verify.mjs` (or whatever your harness prefix is).
|
||||
@@ -0,0 +1,4 @@
|
||||
// Routing eval fixtures for skills/academic-verify.
|
||||
{"intent":"please verify this academic claim for me now","expected_skill":"academic-verify"}
|
||||
{"intent":"please check this study for me now","expected_skill":"academic-verify"}
|
||||
{"intent":"please academic verify for me now","expected_skill":"academic-verify"}
|
||||
@@ -0,0 +1,30 @@
|
||||
---
|
||||
name: archive-crawler
|
||||
version: 0.1.0
|
||||
description: Universal archivist for personal file archives (Dropbox/B2/email exports). Filters for high-value content within an explicit gbrain.yml allow-list scan_paths gate.
|
||||
triggers:
|
||||
- "crawl my archive"
|
||||
- "find gold in my archive"
|
||||
- "archive crawler"
|
||||
- "scan my dropbox for"
|
||||
- "mine my old files for"
|
||||
mutating: true
|
||||
writes_pages: true
|
||||
writes_to:
|
||||
- originals/
|
||||
- personal/
|
||||
- ideas/
|
||||
---
|
||||
|
||||
# archive-crawler
|
||||
|
||||
Universal archivist for personal file archives (Dropbox/B2/email exports). Filters for high-value content within an explicit gbrain.yml allow-list scan_paths gate.
|
||||
|
||||
## The rule
|
||||
|
||||
<!-- SKILLIFY_STUB: replace before running check-resolvable --strict -->
|
||||
Replace this stub with the hard rule that prevents recurrence of the failure that triggered this skill.
|
||||
|
||||
## How to use
|
||||
|
||||
Run the deterministic script: `bun scripts/archive-crawler.mjs` (or whatever your harness prefix is).
|
||||
@@ -0,0 +1,4 @@
|
||||
// Routing eval fixtures for skills/archive-crawler.
|
||||
{"intent":"please crawl my archive for me now","expected_skill":"archive-crawler"}
|
||||
{"intent":"please find gold in my archive for me now","expected_skill":"archive-crawler"}
|
||||
{"intent":"please archive crawler for me now","expected_skill":"archive-crawler"}
|
||||
@@ -0,0 +1,27 @@
|
||||
---
|
||||
name: article-enrichment
|
||||
version: 0.1.0
|
||||
description: Transform raw article text dumps in the brain into structured pages with executive summaries, verbatim quotes, key insights, why-it-matters, and cross-references.
|
||||
triggers:
|
||||
- "enrich this article"
|
||||
- "enrich brain pages"
|
||||
- "batch enrich"
|
||||
- "make brain pages useful"
|
||||
mutating: true
|
||||
writes_pages: true
|
||||
writes_to:
|
||||
- media/articles/
|
||||
---
|
||||
|
||||
# article-enrichment
|
||||
|
||||
Transform raw article text dumps in the brain into structured pages with executive summaries, verbatim quotes, key insights, why-it-matters, and cross-references.
|
||||
|
||||
## The rule
|
||||
|
||||
<!-- SKILLIFY_STUB: replace before running check-resolvable --strict -->
|
||||
Replace this stub with the hard rule that prevents recurrence of the failure that triggered this skill.
|
||||
|
||||
## How to use
|
||||
|
||||
Run the deterministic script: `bun scripts/article-enrichment.mjs` (or whatever your harness prefix is).
|
||||
@@ -0,0 +1,4 @@
|
||||
// Routing eval fixtures for skills/article-enrichment.
|
||||
{"intent":"please enrich this article for me now","expected_skill":"article-enrichment"}
|
||||
{"intent":"please enrich brain pages for me now","expected_skill":"article-enrichment"}
|
||||
{"intent":"please batch enrich for me now","expected_skill":"article-enrichment"}
|
||||
@@ -0,0 +1,28 @@
|
||||
---
|
||||
name: book-mirror
|
||||
version: 0.1.0
|
||||
description: Take any book (EPUB/PDF), produce a personalized chapter-by-chapter analysis with two-column tables: left = chapter summary, right = how it applies to you based on brain context. Output: brain page + PDF.
|
||||
triggers:
|
||||
- "personalized version of this book"
|
||||
- "mirror this book"
|
||||
- "two-column book analysis"
|
||||
- "apply this book to my life"
|
||||
- "how does this book apply to me"
|
||||
mutating: true
|
||||
writes_pages: true
|
||||
writes_to:
|
||||
- media/books/
|
||||
---
|
||||
|
||||
# book-mirror
|
||||
|
||||
Take any book (EPUB/PDF), produce a personalized chapter-by-chapter analysis with two-column tables: left = chapter summary, right = how it applies to you based on brain context. Output: brain page + PDF.
|
||||
|
||||
## The rule
|
||||
|
||||
<!-- SKILLIFY_STUB: replace before running check-resolvable --strict -->
|
||||
Replace this stub with the hard rule that prevents recurrence of the failure that triggered this skill.
|
||||
|
||||
## How to use
|
||||
|
||||
Run the deterministic script: `bun scripts/book-mirror.mjs` (or whatever your harness prefix is).
|
||||
@@ -0,0 +1,4 @@
|
||||
// Routing eval fixtures for skills/book-mirror.
|
||||
{"intent":"please personalized version of this book for me now","expected_skill":"book-mirror"}
|
||||
{"intent":"please mirror this book for me now","expected_skill":"book-mirror"}
|
||||
{"intent":"please two-column book analysis for me now","expected_skill":"book-mirror"}
|
||||
@@ -0,0 +1,24 @@
|
||||
---
|
||||
name: brain-pdf
|
||||
version: 0.1.0
|
||||
description: Generate a publication-quality PDF from any brain page via the gstack make-pdf binary; strips frontmatter, sanitizes emoji, applies running headers.
|
||||
triggers:
|
||||
- "make pdf from brain"
|
||||
- "brain pdf"
|
||||
- "convert brain page to pdf"
|
||||
- "publish this page as pdf"
|
||||
- "export brain page"
|
||||
---
|
||||
|
||||
# brain-pdf
|
||||
|
||||
Generate a publication-quality PDF from any brain page via the gstack make-pdf binary; strips frontmatter, sanitizes emoji, applies running headers.
|
||||
|
||||
## The rule
|
||||
|
||||
<!-- SKILLIFY_STUB: replace before running check-resolvable --strict -->
|
||||
Replace this stub with the hard rule that prevents recurrence of the failure that triggered this skill.
|
||||
|
||||
## How to use
|
||||
|
||||
Run the deterministic script: `bun scripts/brain-pdf.mjs` (or whatever your harness prefix is).
|
||||
@@ -0,0 +1,4 @@
|
||||
// Routing eval fixtures for skills/brain-pdf.
|
||||
{"intent":"please make pdf from brain for me now","expected_skill":"brain-pdf"}
|
||||
{"intent":"please brain pdf for me now","expected_skill":"brain-pdf"}
|
||||
{"intent":"please convert brain page to pdf for me now","expected_skill":"brain-pdf"}
|
||||
@@ -0,0 +1,28 @@
|
||||
---
|
||||
name: concept-synthesis
|
||||
version: 0.1.0
|
||||
description: Deduplicate and synthesize raw concept stubs into a tiered intellectual map (T1 Canon to T4 Riff), tracing idea evolution across sources over time.
|
||||
triggers:
|
||||
- "concept synthesis"
|
||||
- "synthesize my concepts"
|
||||
- "find patterns across my notes"
|
||||
- "build my intellectual map"
|
||||
- "trace idea evolution"
|
||||
mutating: true
|
||||
writes_pages: true
|
||||
writes_to:
|
||||
- concepts/
|
||||
---
|
||||
|
||||
# concept-synthesis
|
||||
|
||||
Deduplicate and synthesize raw concept stubs into a tiered intellectual map (T1 Canon to T4 Riff), tracing idea evolution across sources over time.
|
||||
|
||||
## The rule
|
||||
|
||||
<!-- SKILLIFY_STUB: replace before running check-resolvable --strict -->
|
||||
Replace this stub with the hard rule that prevents recurrence of the failure that triggered this skill.
|
||||
|
||||
## How to use
|
||||
|
||||
Run the deterministic script: `bun scripts/concept-synthesis.mjs` (or whatever your harness prefix is).
|
||||
@@ -0,0 +1,4 @@
|
||||
// Routing eval fixtures for skills/concept-synthesis.
|
||||
{"intent":"please concept synthesis for me now","expected_skill":"concept-synthesis"}
|
||||
{"intent":"please synthesize my concepts for me now","expected_skill":"concept-synthesis"}
|
||||
{"intent":"please find patterns across my notes for me now","expected_skill":"concept-synthesis"}
|
||||
+46
-1
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "gbrain",
|
||||
"version": "0.10.0",
|
||||
"version": "0.25.1",
|
||||
"conformance_version": "1.0.0",
|
||||
"description": "Personal knowledge brain with hybrid RAG search \u2014 GStack mod for agent platforms",
|
||||
"skills": [
|
||||
@@ -153,6 +153,51 @@
|
||||
"name": "smoke-test",
|
||||
"path": "smoke-test/SKILL.md",
|
||||
"description": "Post-restart smoke tests + auto-fix for gbrain and OpenClaw environments"
|
||||
},
|
||||
{
|
||||
"name": "book-mirror",
|
||||
"path": "book-mirror/SKILL.md",
|
||||
"description": "Take any book (EPUB/PDF), produce a personalized chapter-by-chapter analysis with two-column tables: left = chapter summary, right = how it applies to you based on brain context. Output: brain page + PDF."
|
||||
},
|
||||
{
|
||||
"name": "article-enrichment",
|
||||
"path": "article-enrichment/SKILL.md",
|
||||
"description": "Transform raw article text dumps in the brain into structured pages with executive summaries, verbatim quotes, key insights, why-it-matters, and cross-references."
|
||||
},
|
||||
{
|
||||
"name": "strategic-reading",
|
||||
"path": "strategic-reading/SKILL.md",
|
||||
"description": "Read a book/article/case study through the lens of a specific strategic problem; produce an applied playbook (do/avoid/watch for) with short/medium/long-term recommendations."
|
||||
},
|
||||
{
|
||||
"name": "concept-synthesis",
|
||||
"path": "concept-synthesis/SKILL.md",
|
||||
"description": "Deduplicate and synthesize raw concept stubs into a tiered intellectual map (T1 Canon to T4 Riff), tracing idea evolution across sources over time."
|
||||
},
|
||||
{
|
||||
"name": "perplexity-research",
|
||||
"path": "perplexity-research/SKILL.md",
|
||||
"description": "Brain-augmented web research via Perplexity plus Opus; surfaces what is NEW vs already-known about a topic by cross-referencing against the brain first."
|
||||
},
|
||||
{
|
||||
"name": "archive-crawler",
|
||||
"path": "archive-crawler/SKILL.md",
|
||||
"description": "Universal archivist for personal file archives (Dropbox/B2/email exports). Filters for high-value content within an explicit gbrain.yml allow-list scan_paths gate."
|
||||
},
|
||||
{
|
||||
"name": "academic-verify",
|
||||
"path": "academic-verify/SKILL.md",
|
||||
"description": "Verify academic citations and research claims against current literature; routes through perplexity-research for the actual web search and formats results as a citation-checked brain page."
|
||||
},
|
||||
{
|
||||
"name": "brain-pdf",
|
||||
"path": "brain-pdf/SKILL.md",
|
||||
"description": "Generate a publication-quality PDF from any brain page via the gstack make-pdf binary; strips frontmatter, sanitizes emoji, applies running headers."
|
||||
},
|
||||
{
|
||||
"name": "voice-note-ingest",
|
||||
"path": "voice-note-ingest/SKILL.md",
|
||||
"description": "Ingest voice notes with exact-phrasing preservation (never paraphrased); routes content based on a decision tree across originals/concepts/people/companies/ideas/personal/voice-notes."
|
||||
}
|
||||
],
|
||||
"dependencies": {
|
||||
|
||||
@@ -113,6 +113,6 @@ Brain page created with summary, highlights, and entity cross-links. Report to u
|
||||
|
||||
- Dumping raw transcripts without analysis
|
||||
- Skipping entity extraction ("I'll do that separately")
|
||||
- Filing by format (all videos in `media/videos/`) instead of by subject
|
||||
- Filing **raw ingest** by format (all videos in `media/videos/`) instead of by subject. Note: format-prefixed paths under `media/<format>/<slug>` ARE sanctioned for **synthesized one-of-one output** like book-mirror's `media/books/<slug>-personalized.md`. The anti-pattern is for raw ingest, not for sui generis synthesis. See `skills/_brain-filing-rules.md` "Sanctioned exception: synthesis output is sui generis."
|
||||
- Not preserving raw source files
|
||||
- Creating stub pages without meaningful content
|
||||
|
||||
@@ -0,0 +1,28 @@
|
||||
---
|
||||
name: perplexity-research
|
||||
version: 0.1.0
|
||||
description: Brain-augmented web research via Perplexity plus Opus; surfaces what is NEW vs already-known about a topic by cross-referencing against the brain first.
|
||||
triggers:
|
||||
- "perplexity research"
|
||||
- "what's new about"
|
||||
- "current state of"
|
||||
- "web research"
|
||||
- "what changed about"
|
||||
mutating: true
|
||||
writes_pages: true
|
||||
writes_to:
|
||||
- research/
|
||||
---
|
||||
|
||||
# perplexity-research
|
||||
|
||||
Brain-augmented web research via Perplexity plus Opus; surfaces what is NEW vs already-known about a topic by cross-referencing against the brain first.
|
||||
|
||||
## The rule
|
||||
|
||||
<!-- SKILLIFY_STUB: replace before running check-resolvable --strict -->
|
||||
Replace this stub with the hard rule that prevents recurrence of the failure that triggered this skill.
|
||||
|
||||
## How to use
|
||||
|
||||
Run the deterministic script: `bun scripts/perplexity-research.mjs` (or whatever your harness prefix is).
|
||||
@@ -0,0 +1,4 @@
|
||||
// Routing eval fixtures for skills/perplexity-research.
|
||||
{"intent":"please perplexity research for me now","expected_skill":"perplexity-research"}
|
||||
{"intent":"please what's new about for me now","expected_skill":"perplexity-research"}
|
||||
{"intent":"please current state of for me now","expected_skill":"perplexity-research"}
|
||||
@@ -0,0 +1,29 @@
|
||||
---
|
||||
name: strategic-reading
|
||||
version: 0.1.0
|
||||
description: Read a book/article/case study through the lens of a specific strategic problem; produce an applied playbook (do/avoid/watch for) with short/medium/long-term recommendations.
|
||||
triggers:
|
||||
- "strategic reading"
|
||||
- "read this through the lens of"
|
||||
- "apply this to my problem"
|
||||
- "what can I learn from this about"
|
||||
- "extract a playbook from"
|
||||
mutating: true
|
||||
writes_pages: true
|
||||
writes_to:
|
||||
- concepts/
|
||||
- projects/
|
||||
---
|
||||
|
||||
# strategic-reading
|
||||
|
||||
Read a book/article/case study through the lens of a specific strategic problem; produce an applied playbook (do/avoid/watch for) with short/medium/long-term recommendations.
|
||||
|
||||
## The rule
|
||||
|
||||
<!-- SKILLIFY_STUB: replace before running check-resolvable --strict -->
|
||||
Replace this stub with the hard rule that prevents recurrence of the failure that triggered this skill.
|
||||
|
||||
## How to use
|
||||
|
||||
Run the deterministic script: `bun scripts/strategic-reading.mjs` (or whatever your harness prefix is).
|
||||
@@ -0,0 +1,4 @@
|
||||
// Routing eval fixtures for skills/strategic-reading.
|
||||
{"intent":"please strategic reading for me now","expected_skill":"strategic-reading"}
|
||||
{"intent":"please read this through the lens of for me now","expected_skill":"strategic-reading"}
|
||||
{"intent":"please apply this to my problem for me now","expected_skill":"strategic-reading"}
|
||||
@@ -0,0 +1,34 @@
|
||||
---
|
||||
name: voice-note-ingest
|
||||
version: 0.1.0
|
||||
description: Ingest voice notes with exact-phrasing preservation (never paraphrased); routes content to originals/concepts/people/companies/ideas/personal/voice-notes/ based on a decision tree.
|
||||
triggers:
|
||||
- "voice note"
|
||||
- "ingest this voice memo"
|
||||
- "transcribe and file"
|
||||
- "voice note ingest"
|
||||
- "save this audio note"
|
||||
mutating: true
|
||||
writes_pages: true
|
||||
writes_to:
|
||||
- voice-notes/
|
||||
- originals/
|
||||
- concepts/
|
||||
- people/
|
||||
- companies/
|
||||
- ideas/
|
||||
- personal/
|
||||
---
|
||||
|
||||
# voice-note-ingest
|
||||
|
||||
Ingest voice notes with exact-phrasing preservation (never paraphrased); routes content to originals/concepts/people/companies/ideas/personal/voice-notes/ based on a decision tree.
|
||||
|
||||
## The rule
|
||||
|
||||
<!-- SKILLIFY_STUB: replace before running check-resolvable --strict -->
|
||||
Replace this stub with the hard rule that prevents recurrence of the failure that triggered this skill.
|
||||
|
||||
## How to use
|
||||
|
||||
Run the deterministic script: `bun scripts/voice-note-ingest.mjs` (or whatever your harness prefix is).
|
||||
@@ -0,0 +1,4 @@
|
||||
// Routing eval fixtures for skills/voice-note-ingest.
|
||||
{"intent":"please voice note for me now","expected_skill":"voice-note-ingest"}
|
||||
{"intent":"please ingest this voice memo for me now","expected_skill":"voice-note-ingest"}
|
||||
{"intent":"please transcribe and file for me now","expected_skill":"voice-note-ingest"}
|
||||
Reference in New Issue
Block a user