beeweave 0.1.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- beeweave-0.1.0/.env.example +110 -0
- beeweave-0.1.0/.github/copilot-instructions.md +162 -0
- beeweave-0.1.0/.github/workflows/publish.yml +74 -0
- beeweave-0.1.0/.github/workflows/setup.yml +29 -0
- beeweave-0.1.0/.gitignore +29 -0
- beeweave-0.1.0/.skills/README.md +154 -0
- beeweave-0.1.0/.skills/wiki/beeweave-agent/SKILL.md +312 -0
- beeweave-0.1.0/.skills/wiki/beeweave-capture/SKILL.md +291 -0
- beeweave-0.1.0/.skills/wiki/beeweave-capture/references/INBOX-CAPTURE-FORMAT.md +116 -0
- beeweave-0.1.0/.skills/wiki/beeweave-claude-ingest/SKILL.md +460 -0
- beeweave-0.1.0/.skills/wiki/beeweave-claude-ingest/references/claude-data-format.md +118 -0
- beeweave-0.1.0/.skills/wiki/beeweave-codex-ingest/SKILL.md +245 -0
- beeweave-0.1.0/.skills/wiki/beeweave-codex-ingest/references/codex-data-format.md +82 -0
- beeweave-0.1.0/.skills/wiki/beeweave-context-pack/SKILL.md +138 -0
- beeweave-0.1.0/.skills/wiki/beeweave-copilot-ingest/SKILL.md +373 -0
- beeweave-0.1.0/.skills/wiki/beeweave-copilot-ingest/references/copilot-data-format.md +321 -0
- beeweave-0.1.0/.skills/wiki/beeweave-core/SKILL.md +603 -0
- beeweave-0.1.0/.skills/wiki/beeweave-core/references/karpathy-pattern.md +45 -0
- beeweave-0.1.0/.skills/wiki/beeweave-cross-linker/SKILL.md +270 -0
- beeweave-0.1.0/.skills/wiki/beeweave-daily-update/SKILL.md +199 -0
- beeweave-0.1.0/.skills/wiki/beeweave-dashboard/SKILL.md +469 -0
- beeweave-0.1.0/.skills/wiki/beeweave-dedup/SKILL.md +282 -0
- beeweave-0.1.0/.skills/wiki/beeweave-digest/SKILL.md +239 -0
- beeweave-0.1.0/.skills/wiki/beeweave-export/SKILL.md +389 -0
- beeweave-0.1.0/.skills/wiki/beeweave-graph-colorize/SKILL.md +178 -0
- beeweave-0.1.0/.skills/wiki/beeweave-hermes-ingest/SKILL.md +236 -0
- beeweave-0.1.0/.skills/wiki/beeweave-hermes-ingest/references/hermes-data-format.md +131 -0
- beeweave-0.1.0/.skills/wiki/beeweave-history-ingest/SKILL.md +61 -0
- beeweave-0.1.0/.skills/wiki/beeweave-impl-validator/SKILL.md +118 -0
- beeweave-0.1.0/.skills/wiki/beeweave-import/SKILL.md +273 -0
- beeweave-0.1.0/.skills/wiki/beeweave-ingest/SKILL.md +533 -0
- beeweave-0.1.0/.skills/wiki/beeweave-ingest/references/ingest-prompts.md +54 -0
- beeweave-0.1.0/.skills/wiki/beeweave-ingest/references/pageindex.md +72 -0
- beeweave-0.1.0/.skills/wiki/beeweave-ingest/references/url-sources.md +291 -0
- beeweave-0.1.0/.skills/wiki/beeweave-lint/SKILL.md +532 -0
- beeweave-0.1.0/.skills/wiki/beeweave-memory-bridge/SKILL.md +163 -0
- beeweave-0.1.0/.skills/wiki/beeweave-openclaw-ingest/SKILL.md +254 -0
- beeweave-0.1.0/.skills/wiki/beeweave-openclaw-ingest/references/openclaw-data-format.md +154 -0
- beeweave-0.1.0/.skills/wiki/beeweave-pi-ingest/SKILL.md +309 -0
- beeweave-0.1.0/.skills/wiki/beeweave-query/SKILL.md +271 -0
- beeweave-0.1.0/.skills/wiki/beeweave-rebuild/SKILL.md +211 -0
- beeweave-0.1.0/.skills/wiki/beeweave-research/SKILL.md +241 -0
- beeweave-0.1.0/.skills/wiki/beeweave-setup/SKILL.md +238 -0
- beeweave-0.1.0/.skills/wiki/beeweave-skill-creator/LICENSE.txt +202 -0
- beeweave-0.1.0/.skills/wiki/beeweave-skill-creator/SKILL.md +485 -0
- beeweave-0.1.0/.skills/wiki/beeweave-skill-creator/agents/analyzer.md +274 -0
- beeweave-0.1.0/.skills/wiki/beeweave-skill-creator/agents/comparator.md +202 -0
- beeweave-0.1.0/.skills/wiki/beeweave-skill-creator/agents/grader.md +223 -0
- beeweave-0.1.0/.skills/wiki/beeweave-skill-creator/assets/eval_review.html +146 -0
- beeweave-0.1.0/.skills/wiki/beeweave-skill-creator/eval-viewer/generate_review.py +471 -0
- beeweave-0.1.0/.skills/wiki/beeweave-skill-creator/eval-viewer/viewer.html +1325 -0
- beeweave-0.1.0/.skills/wiki/beeweave-skill-creator/references/schemas.md +430 -0
- beeweave-0.1.0/.skills/wiki/beeweave-skill-creator/scripts/__init__.py +0 -0
- beeweave-0.1.0/.skills/wiki/beeweave-skill-creator/scripts/aggregate_benchmark.py +401 -0
- beeweave-0.1.0/.skills/wiki/beeweave-skill-creator/scripts/generate_report.py +326 -0
- beeweave-0.1.0/.skills/wiki/beeweave-skill-creator/scripts/improve_description.py +247 -0
- beeweave-0.1.0/.skills/wiki/beeweave-skill-creator/scripts/package_skill.py +136 -0
- beeweave-0.1.0/.skills/wiki/beeweave-skill-creator/scripts/quick_validate.py +103 -0
- beeweave-0.1.0/.skills/wiki/beeweave-skill-creator/scripts/run_eval.py +310 -0
- beeweave-0.1.0/.skills/wiki/beeweave-skill-creator/scripts/run_loop.py +328 -0
- beeweave-0.1.0/.skills/wiki/beeweave-skill-creator/scripts/utils.py +47 -0
- beeweave-0.1.0/.skills/wiki/beeweave-stage-commit/SKILL.md +165 -0
- beeweave-0.1.0/.skills/wiki/beeweave-status/SKILL.md +476 -0
- beeweave-0.1.0/.skills/wiki/beeweave-switch/SKILL.md +106 -0
- beeweave-0.1.0/.skills/wiki/beeweave-synthesize/SKILL.md +209 -0
- beeweave-0.1.0/.skills/wiki/beeweave-tag-taxonomy/SKILL.md +218 -0
- beeweave-0.1.0/.skills/wiki/beeweave-update/SKILL.md +240 -0
- beeweave-0.1.0/.skills/wiki/beeweave-vault-skill-factory/SKILL.md +135 -0
- beeweave-0.1.0/.skills/workbench/beeweave-article-writer/SKILL.md +411 -0
- beeweave-0.1.0/.skills/workbench/beeweave-article-writer/references/content_methodology.md +136 -0
- beeweave-0.1.0/.skills/workbench/beeweave-article-writer/references/style_examples.md +428 -0
- beeweave-0.1.0/.skills/workbench/beeweave-social-writer/SKILL.md +509 -0
- beeweave-0.1.0/.skills/workbench/beeweave-social-writer/references/style_examples.md +98 -0
- beeweave-0.1.0/AGENTS.md +80 -0
- beeweave-0.1.0/LICENSE +21 -0
- beeweave-0.1.0/PKG-INFO +414 -0
- beeweave-0.1.0/README-zh.md +312 -0
- beeweave-0.1.0/README.md +385 -0
- beeweave-0.1.0/SETUP.md +234 -0
- beeweave-0.1.0/beeweave/__init__.py +14 -0
- beeweave-0.1.0/beeweave/__main__.py +6 -0
- beeweave-0.1.0/beeweave/ast_extractor.py +387 -0
- beeweave-0.1.0/beeweave/batch.py +288 -0
- beeweave-0.1.0/beeweave/cache.py +156 -0
- beeweave-0.1.0/beeweave/cli.py +1411 -0
- beeweave-0.1.0/beeweave/graph_analysis.py +352 -0
- beeweave-0.1.0/beeweave/graphrag.py +367 -0
- beeweave-0.1.0/bootstrap/AGENTS.md +93 -0
- beeweave-0.1.0/bootstrap/agent/rules/beeweave.md +43 -0
- beeweave-0.1.0/bootstrap/agent/workflows/beeweave.md +29 -0
- beeweave-0.1.0/bootstrap/claude/hooks/beeweave-stop-capture.sh +94 -0
- beeweave-0.1.0/bootstrap/claude/settings.stop-hook.json +15 -0
- beeweave-0.1.0/bootstrap/cursor/rules/beeweave.mdc +40 -0
- beeweave-0.1.0/bootstrap/kiro/steering/beeweave.md +42 -0
- beeweave-0.1.0/bootstrap/windsurf/rules/beeweave.md +40 -0
- beeweave-0.1.0/docs/beeweave.png +0 -0
- beeweave-0.1.0/extensions/brain-capture/README.md +44 -0
- beeweave-0.1.0/extensions/brain-capture/assets/icon-128.png +0 -0
- beeweave-0.1.0/extensions/brain-capture/assets/icon-16.png +0 -0
- beeweave-0.1.0/extensions/brain-capture/assets/icon-48.png +0 -0
- beeweave-0.1.0/extensions/brain-capture/assets/obsidian-brain.png +0 -0
- beeweave-0.1.0/extensions/brain-capture/background.js +212 -0
- beeweave-0.1.0/extensions/brain-capture/manifest.json +28 -0
- beeweave-0.1.0/extensions/brain-capture/popup.css +293 -0
- beeweave-0.1.0/extensions/brain-capture/popup.html +53 -0
- beeweave-0.1.0/extensions/brain-capture/popup.js +265 -0
- beeweave-0.1.0/pyproject.toml +99 -0
- beeweave-0.1.0/setup.sh +787 -0
- beeweave-0.1.0/tests/test_ast_extractor.py +174 -0
- beeweave-0.1.0/tests/test_batch.py +262 -0
- beeweave-0.1.0/tests/test_cache.py +218 -0
- beeweave-0.1.0/tests/test_cli_skills_layout.py +527 -0
- beeweave-0.1.0/tests/test_graph_analysis.py +294 -0
- beeweave-0.1.0/tests/test_graphrag.py +282 -0
- beeweave-0.1.0/tests/test_inline_vault_targeting_docs.py +114 -0
- beeweave-0.1.0/tests/test_okf_same_name_link_roundtrip.py +50 -0
- beeweave-0.1.0/uv.lock +476 -0
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
# =============================================================================
|
|
2
|
+
# BeeWeave — Environment Configuration
|
|
3
|
+
# Copy this to .env and set your vault path
|
|
4
|
+
# =============================================================================
|
|
5
|
+
|
|
6
|
+
# --- Required ---
|
|
7
|
+
|
|
8
|
+
# Path to your Obsidian vault. setup expands this to an absolute path and
|
|
9
|
+
# creates the compiled knowledge layer at the location you choose.
|
|
10
|
+
BEEWEAVE_VAULT_PATH=./vault
|
|
11
|
+
|
|
12
|
+
# --- Optional ---
|
|
13
|
+
|
|
14
|
+
# GitHub remote for vault sync (set by setup.sh when you enable GitHub sync)
|
|
15
|
+
# wiki-sync uses this to push committed vault changes
|
|
16
|
+
VAULT_GITHUB_REMOTE=
|
|
17
|
+
|
|
18
|
+
# Comma-separated source directories to ingest documents from.
|
|
19
|
+
# The workbench is the creation layer; ingest pending inputs and stable
|
|
20
|
+
# drafts/research from here.
|
|
21
|
+
BEEWEAVE_SOURCES_DIR=./workbench
|
|
22
|
+
|
|
23
|
+
# Workbench inbox for unprocessed captures and web clippings.
|
|
24
|
+
BEEWEAVE_INBOX_DIR=./workbench/inbox
|
|
25
|
+
|
|
26
|
+
# Wiki categories (directories created in the vault)
|
|
27
|
+
BEEWEAVE_CATEGORIES=concepts,entities,skills,references,synthesis,projects
|
|
28
|
+
|
|
29
|
+
# Max pages to create/update per ingest operation
|
|
30
|
+
BEEWEAVE_MAX_PAGES_PER_INGEST=15
|
|
31
|
+
|
|
32
|
+
# Projects to exclude from history ingest (claude/codex/hermes/… history-ingest skills).
|
|
33
|
+
# Comma-separated substrings matched against the project directory name. A project
|
|
34
|
+
# dir whose name contains any of these is skipped during scan, delta, and manifest steps.
|
|
35
|
+
# Example: WIKI_SKIP_PROJECTS=archived,scratch,sandbox
|
|
36
|
+
WIKI_SKIP_PROJECTS=
|
|
37
|
+
|
|
38
|
+
# Claude conversation history path (auto-discovered from ~/.claude if empty)
|
|
39
|
+
CLAUDE_HISTORY_PATH=
|
|
40
|
+
|
|
41
|
+
# Codex history path (defaults to ~/.codex if empty)
|
|
42
|
+
CODEX_HISTORY_PATH=
|
|
43
|
+
|
|
44
|
+
# Pi agent session history path (defaults to ~/.pi/agent/sessions if empty)
|
|
45
|
+
PI_HISTORY_PATH=
|
|
46
|
+
|
|
47
|
+
# Lint schedule: daily | weekly | manual
|
|
48
|
+
LINT_SCHEDULE=weekly
|
|
49
|
+
|
|
50
|
+
# Internal link format for generated/updated pages
|
|
51
|
+
# wikilink (default) → [[concepts/foo]] or [[concepts/foo|display text]]
|
|
52
|
+
# markdown → [display text](relative/path.md)
|
|
53
|
+
# Only affects future writes — existing vault content is never migrated automatically.
|
|
54
|
+
BEEWEAVE_LINK_FORMAT=wikilink
|
|
55
|
+
|
|
56
|
+
# --- QMD Semantic Search (optional) ---
|
|
57
|
+
#
|
|
58
|
+
# QMD indexes your wiki and sources for fast semantic search.
|
|
59
|
+
# Install: https://github.com/tobi/qmd
|
|
60
|
+
# After installing, point these at your QMD collection names (set when you ran `qmd index`).
|
|
61
|
+
#
|
|
62
|
+
# Without QMD: wiki-ingest and wiki-query fall back to Grep/Glob — fully functional, just slower.
|
|
63
|
+
# With QMD: semantic search replaces grep passes, enabling concept-level matches and cross-collection queries.
|
|
64
|
+
|
|
65
|
+
# Name of the QMD collection indexing your compiled wiki pages (BEEWEAVE_VAULT_PATH)
|
|
66
|
+
QMD_WIKI_COLLECTION=
|
|
67
|
+
|
|
68
|
+
# Name of the QMD collection indexing your source documents (BEEWEAVE_SOURCES_DIR)
|
|
69
|
+
QMD_PAPERS_COLLECTION=
|
|
70
|
+
|
|
71
|
+
# QMD integration transport: mcp | cli
|
|
72
|
+
# mcp preserves the original behavior and uses an agent-configured QMD MCP server.
|
|
73
|
+
# cli runs the local qmd command directly; useful for agents without QMD MCP support.
|
|
74
|
+
QMD_TRANSPORT=mcp
|
|
75
|
+
|
|
76
|
+
# CLI search quality mode: quality | balanced | fast
|
|
77
|
+
# quality: qmd query with reranking (best relevance, slowest on CPU)
|
|
78
|
+
# balanced: qmd query --no-rerank (good hybrid results, faster)
|
|
79
|
+
# fast: qmd vsearch (semantic only) or qmd search when exact terms matter
|
|
80
|
+
QMD_CLI_SEARCH_MODE=quality
|
|
81
|
+
|
|
82
|
+
# Optional qmd binary override if qmd is not on PATH.
|
|
83
|
+
QMD_CLI=qmd
|
|
84
|
+
|
|
85
|
+
# --- Vault Skill Factory (optional) ---
|
|
86
|
+
#
|
|
87
|
+
# vault-skill-factory turns mature curated pages into portable Agent Skills.
|
|
88
|
+
# Generated skills land in a REVIEW directory — never auto-installed, never written to .skills/.
|
|
89
|
+
#
|
|
90
|
+
# Where generated skills are written (default: <BEEWEAVE_VAULT_PATH>/_generated-skills — a
|
|
91
|
+
# vault-level excluded dir like _meta/_staging, NOT the skills/ knowledge category).
|
|
92
|
+
SKILL_FACTORY_OUTPUT_DIR=
|
|
93
|
+
# Which lifecycle states count as "mature" enough to harvest (pages with tier: core also qualify).
|
|
94
|
+
SKILL_FACTORY_MATURITY=reviewed,verified
|
|
95
|
+
# --- PageIndex: structure-aware long-PDF preprocessing (optional) ---
|
|
96
|
+
#
|
|
97
|
+
# For long PDFs (books, reports), build a table-of-contents tree (section titles +
|
|
98
|
+
# summaries + page ranges) before ingest, so the agent reads only relevant sections.
|
|
99
|
+
# Install: clone https://github.com/VectifyAI/PageIndex, create a venv (uv), and put an
|
|
100
|
+
# LLM key in <repo>/.env (LiteLLM; e.g. deepseek/deepseek-v4-flash or openai/glm-4.6).
|
|
101
|
+
# See wiki-ingest/references/pageindex.md. Without it: wiki-ingest reads PDFs directly.
|
|
102
|
+
#
|
|
103
|
+
# Path to the PageIndex repo (enables the wiki-ingest long-PDF branch).
|
|
104
|
+
PAGEINDEX_REPO=
|
|
105
|
+
# LiteLLM model id PageIndex uses (default openai/glm-4.6).
|
|
106
|
+
PAGEINDEX_MODEL=openai/glm-4.6
|
|
107
|
+
# Only preprocess PDFs with at least this many pages.
|
|
108
|
+
PAGEINDEX_MIN_PAGES=30
|
|
109
|
+
# Optional cache dir for *_structure.json (default: <PAGEINDEX_REPO>/results).
|
|
110
|
+
PAGEINDEX_WORKSPACE=
|
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
# BeeWeave — Copilot Context
|
|
2
|
+
|
|
3
|
+
BeeWeave is an **agent-native creation workbench** for building a creative data
|
|
4
|
+
flywheel: collect source material, create with agents, distill durable
|
|
5
|
+
knowledge, reuse that knowledge as context, then collect better material for
|
|
6
|
+
the next loop.
|
|
7
|
+
|
|
8
|
+
This repository contains the Python CLI, bundled skills, bootstrap templates,
|
|
9
|
+
browser extension assets, tests, and documentation used to install and maintain
|
|
10
|
+
BeeWeave workspaces.
|
|
11
|
+
|
|
12
|
+
## Project Overview
|
|
13
|
+
|
|
14
|
+
- **Purpose:** Help agents and humans move material through a structured loop:
|
|
15
|
+
`collect -> create -> distill -> reuse context -> collect better`.
|
|
16
|
+
- **Runtime model:** `workbench/` is the staging and drafting area; `vault/` is
|
|
17
|
+
the compiled markdown knowledge base.
|
|
18
|
+
- **CLI:** The public console command is `bwe`.
|
|
19
|
+
- **Package:** Python package code lives under `beeweave/`; package metadata and
|
|
20
|
+
the CLI entrypoint live in `pyproject.toml`.
|
|
21
|
+
- **Skills:** Source skills live under `.skills/wiki/` and
|
|
22
|
+
`.skills/workbench/`. Each skill folder uses a `SKILL.md` workflow file.
|
|
23
|
+
- **Bootstrap:** Agent-facing setup templates live under `bootstrap/`.
|
|
24
|
+
- **Extension:** Browser capture assets live under `extensions/brain-capture/`.
|
|
25
|
+
|
|
26
|
+
## Key Concepts
|
|
27
|
+
|
|
28
|
+
- BeeWeave is a loop, not a one-way archive.
|
|
29
|
+
- Raw inputs, drafts, captures, web clips, and source libraries belong in
|
|
30
|
+
`workbench/`.
|
|
31
|
+
- Stable reusable knowledge belongs in `vault/` as markdown with metadata and
|
|
32
|
+
Obsidian-style `[[wikilinks]]`.
|
|
33
|
+
- The vault is a compiled artifact: concepts, entities, references, project
|
|
34
|
+
notes, synthesis pages, and graph-ready relationships distilled from higher
|
|
35
|
+
signal material.
|
|
36
|
+
- Setup-generated runtime `vault/` and `workbench/` directories should not be
|
|
37
|
+
committed to this repository.
|
|
38
|
+
|
|
39
|
+
## Runtime Layout
|
|
40
|
+
|
|
41
|
+
BeeWeave setup creates this structure inside a user-selected workspace:
|
|
42
|
+
|
|
43
|
+
```text
|
|
44
|
+
project/
|
|
45
|
+
+-- vault/ # durable markdown knowledge
|
|
46
|
+
| +-- concepts/
|
|
47
|
+
| +-- entities/
|
|
48
|
+
| +-- skills/
|
|
49
|
+
| +-- references/
|
|
50
|
+
| +-- synthesis/
|
|
51
|
+
| +-- projects/
|
|
52
|
+
| +-- _meta/
|
|
53
|
+
| +-- _archives/
|
|
54
|
+
| +-- _staging/
|
|
55
|
+
| +-- .obsidian/
|
|
56
|
+
+-- workbench/ # staging and drafting area
|
|
57
|
+
+-- inbox/
|
|
58
|
+
| +-- captures/
|
|
59
|
+
| +-- web/
|
|
60
|
+
| +-- archived/
|
|
61
|
+
| +-- rejected/
|
|
62
|
+
+-- articles/
|
|
63
|
+
| +-- drafts/
|
|
64
|
+
| +-- published/
|
|
65
|
+
+-- library/
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
Keep repository development files separate from this runtime layout.
|
|
69
|
+
|
|
70
|
+
## Install and Configuration Model
|
|
71
|
+
|
|
72
|
+
- Users install from PyPI with `pip install beeweave`, then run `bwe setup`.
|
|
73
|
+
- Source-checkout setup is also supported with `bash setup.sh`.
|
|
74
|
+
- Global config is written under `~/.beeweave/config`.
|
|
75
|
+
- BeeWeave config uses `BEEWEAVE_*` names such as `BEEWEAVE_VAULT_PATH`,
|
|
76
|
+
`BEEWEAVE_REPO`, and `BEEWEAVE_VERSION`.
|
|
77
|
+
- Named vault routing uses request-local `@name` overrides that resolve to
|
|
78
|
+
files such as `~/.beeweave/config.work`.
|
|
79
|
+
|
|
80
|
+
## Skill Install Policy
|
|
81
|
+
|
|
82
|
+
Global installs are intentionally small.
|
|
83
|
+
|
|
84
|
+
Always global by default:
|
|
85
|
+
|
|
86
|
+
- `beeweave-update`: sync useful project knowledge into the vault
|
|
87
|
+
- `beeweave-query`: answer questions from the compiled vault
|
|
88
|
+
- `beeweave-ingest`: process source material into durable notes
|
|
89
|
+
|
|
90
|
+
Optional advanced global skills include:
|
|
91
|
+
|
|
92
|
+
- `beeweave-capture`
|
|
93
|
+
- `beeweave-context-pack`
|
|
94
|
+
- `beeweave-digest`
|
|
95
|
+
- `beeweave-status`
|
|
96
|
+
- `beeweave-memory-bridge`
|
|
97
|
+
|
|
98
|
+
All other BeeWeave skills remain project-local by default. When changing setup
|
|
99
|
+
behavior, preserve this split unless the README and tests are updated together.
|
|
100
|
+
|
|
101
|
+
## Important Skills
|
|
102
|
+
|
|
103
|
+
- `.skills/wiki/beeweave-setup/`: initialize a BeeWeave workspace.
|
|
104
|
+
- `.skills/wiki/beeweave-ingest/`: distill source material into durable vault
|
|
105
|
+
notes.
|
|
106
|
+
- `.skills/wiki/beeweave-query/`: answer from the compiled vault.
|
|
107
|
+
- `.skills/wiki/beeweave-update/`: preserve durable decisions or lessons from
|
|
108
|
+
current project work.
|
|
109
|
+
- `.skills/wiki/beeweave-synthesize/`: find cross-cutting connections after
|
|
110
|
+
the vault has grown.
|
|
111
|
+
- `.skills/wiki/beeweave-status/`: inspect ingest status and vault health.
|
|
112
|
+
- `.skills/workbench/beeweave-article-writer/`: draft long-form articles from
|
|
113
|
+
workbench material.
|
|
114
|
+
- `.skills/workbench/beeweave-social-writer/`: turn findings into short-form
|
|
115
|
+
social writing.
|
|
116
|
+
|
|
117
|
+
## Repository Layout
|
|
118
|
+
|
|
119
|
+
```text
|
|
120
|
+
beeweave/ # Python CLI and helpers
|
|
121
|
+
.skills/ # source skill definitions
|
|
122
|
+
bootstrap/ # user-project bootstrap templates and agent rules
|
|
123
|
+
extensions/ # browser extension assets
|
|
124
|
+
tests/ # pytest suite
|
|
125
|
+
openspec/ # proposed and active change specs
|
|
126
|
+
setup.sh # source-checkout setup path
|
|
127
|
+
pyproject.toml # package metadata and bwe entrypoint
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
## Coding and Documentation Conventions
|
|
131
|
+
|
|
132
|
+
- Prefer existing CLI, setup, bootstrap, and skill patterns over new
|
|
133
|
+
abstractions.
|
|
134
|
+
- Keep implementation changes scoped to the active request.
|
|
135
|
+
- Preserve the public CLI command as `bwe`.
|
|
136
|
+
- Keep generated user-project instructions in `bootstrap/AGENTS.md`, not the
|
|
137
|
+
repository root `AGENTS.md`.
|
|
138
|
+
- Do not generate `.hermes.md`; Hermes uses `HERMES.md`.
|
|
139
|
+
- Do not recreate runtime `vault/` or `workbench/` directories in the repo root.
|
|
140
|
+
- Do not commit project-local generated skill mirrors such as
|
|
141
|
+
`.claude/skills/`.
|
|
142
|
+
- When creating vault pages in skills or docs, use YAML frontmatter and
|
|
143
|
+
Obsidian `[[wikilinks]]`.
|
|
144
|
+
- Do not modify `.obsidian/` except through explicit graph-related behavior
|
|
145
|
+
such as `beeweave-graph-colorize`.
|
|
146
|
+
|
|
147
|
+
## Verification
|
|
148
|
+
|
|
149
|
+
Use focused checks for small documentation-only edits. When behavior changes,
|
|
150
|
+
run:
|
|
151
|
+
|
|
152
|
+
```bash
|
|
153
|
+
uv run pytest
|
|
154
|
+
uv run bwe setup --help
|
|
155
|
+
uv run bwe info
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
For OpenSpec-backed changes, also run:
|
|
159
|
+
|
|
160
|
+
```bash
|
|
161
|
+
openspec validate <change-name> --strict
|
|
162
|
+
```
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
name: publish
|
|
2
|
+
|
|
3
|
+
# Build and publish beeweave to PyPI when a version tag is pushed.
|
|
4
|
+
#
|
|
5
|
+
# Setup (one-time): on PyPI, add a Trusted Publisher for this repo with
|
|
6
|
+
# workflow `publish.yml` and environment `pypi`. No API token needed — the
|
|
7
|
+
# `id-token: write` permission below mints a short-lived OIDC credential.
|
|
8
|
+
#
|
|
9
|
+
# Release: bump `version` in pyproject.toml, commit, then
|
|
10
|
+
# git tag v0.1.0 && git push origin v0.1.0
|
|
11
|
+
|
|
12
|
+
on:
|
|
13
|
+
push:
|
|
14
|
+
tags:
|
|
15
|
+
- "v*"
|
|
16
|
+
# Allow a manual build (artifacts only, no publish) for verification.
|
|
17
|
+
workflow_dispatch:
|
|
18
|
+
|
|
19
|
+
permissions:
|
|
20
|
+
contents: read
|
|
21
|
+
|
|
22
|
+
jobs:
|
|
23
|
+
build:
|
|
24
|
+
runs-on: ubuntu-latest
|
|
25
|
+
steps:
|
|
26
|
+
- uses: actions/checkout@v4
|
|
27
|
+
- uses: actions/setup-python@v5
|
|
28
|
+
with:
|
|
29
|
+
python-version: "3.x"
|
|
30
|
+
- name: Build sdist and wheel
|
|
31
|
+
run: |
|
|
32
|
+
python -m pip install --upgrade build
|
|
33
|
+
python -m build
|
|
34
|
+
- name: Verify wheel bundles the skills
|
|
35
|
+
run: |
|
|
36
|
+
python -m pip install --upgrade twine
|
|
37
|
+
twine check dist/*
|
|
38
|
+
wheel=$(ls dist/*.whl)
|
|
39
|
+
echo "Inspecting $wheel"
|
|
40
|
+
if ! python -m zipfile -l "$wheel" | grep -q "beeweave/_data/skills/wiki/beeweave-setup/SKILL.md"; then
|
|
41
|
+
echo "::error::wheel is missing bundled skills under beeweave/_data/skills/"
|
|
42
|
+
exit 1
|
|
43
|
+
fi
|
|
44
|
+
- uses: actions/upload-artifact@v4
|
|
45
|
+
with:
|
|
46
|
+
name: dist
|
|
47
|
+
path: dist/
|
|
48
|
+
|
|
49
|
+
publish:
|
|
50
|
+
needs: build
|
|
51
|
+
runs-on: ubuntu-latest
|
|
52
|
+
# Only publish on a real tag push, not workflow_dispatch.
|
|
53
|
+
if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v')
|
|
54
|
+
environment: pypi
|
|
55
|
+
permissions:
|
|
56
|
+
id-token: write # required for PyPI Trusted Publishing (OIDC)
|
|
57
|
+
contents: write # required for creating GitHub Releases
|
|
58
|
+
steps:
|
|
59
|
+
- uses: actions/download-artifact@v4
|
|
60
|
+
with:
|
|
61
|
+
name: dist
|
|
62
|
+
path: dist/
|
|
63
|
+
- name: Publish to PyPI
|
|
64
|
+
uses: pypa/gh-action-pypi-publish@release/v1
|
|
65
|
+
with:
|
|
66
|
+
skip-existing: true
|
|
67
|
+
- name: Create GitHub Release
|
|
68
|
+
env:
|
|
69
|
+
GH_TOKEN: ${{ github.token }}
|
|
70
|
+
run: |
|
|
71
|
+
gh release create "${{ github.ref_name }}" dist/* \
|
|
72
|
+
--repo "${{ github.repository }}" \
|
|
73
|
+
--title "${{ github.ref_name }}" \
|
|
74
|
+
--generate-notes
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
name: setup
|
|
2
|
+
|
|
3
|
+
# Guards setup.sh against the regression where it rewrites committed
|
|
4
|
+
# relative symlinks with absolute paths (or any other modification to
|
|
5
|
+
# tracked files). See #52 for the original bug.
|
|
6
|
+
|
|
7
|
+
on:
|
|
8
|
+
push:
|
|
9
|
+
branches: [main]
|
|
10
|
+
pull_request:
|
|
11
|
+
|
|
12
|
+
jobs:
|
|
13
|
+
install-leaves-tree-clean:
|
|
14
|
+
runs-on: ubuntu-latest
|
|
15
|
+
steps:
|
|
16
|
+
- uses: actions/checkout@v4
|
|
17
|
+
- name: Run setup.sh
|
|
18
|
+
# stdin closed so the vault-path prompt returns empty rather than hang
|
|
19
|
+
run: bash setup.sh < /dev/null
|
|
20
|
+
- name: Working tree must be unchanged
|
|
21
|
+
run: |
|
|
22
|
+
if ! git diff --exit-code; then
|
|
23
|
+
echo "::error::setup.sh modified tracked files. Likely cause: an" \
|
|
24
|
+
"in-repo symlink mirror is being written with an absolute" \
|
|
25
|
+
"target instead of a relative one. See install_skills() in setup.sh."
|
|
26
|
+
exit 1
|
|
27
|
+
fi
|
|
28
|
+
- name: Re-run is idempotent
|
|
29
|
+
run: bash setup.sh < /dev/null && git diff --exit-code
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
.env
|
|
2
|
+
.DS_Store
|
|
3
|
+
.venv/
|
|
4
|
+
.pytest_cache/
|
|
5
|
+
*.pyc
|
|
6
|
+
__pycache__/
|
|
7
|
+
tmp/
|
|
8
|
+
|
|
9
|
+
# Python build artifacts (pyproject.toml / `python -m build`)
|
|
10
|
+
/dist/
|
|
11
|
+
/build/
|
|
12
|
+
*.egg-info/
|
|
13
|
+
|
|
14
|
+
# Agent skill symlinks (created by setup.sh) — these are just pointers to .skills/
|
|
15
|
+
# We track them so cloners get the symlinks too, but if your git doesn't
|
|
16
|
+
# preserve symlinks, run `bash setup.sh` after cloning.
|
|
17
|
+
|
|
18
|
+
.serena/
|
|
19
|
+
openspec/
|
|
20
|
+
|
|
21
|
+
# Obsidian local workspace/cache files inside the monorepo vault
|
|
22
|
+
/vault/.obsidian/workspace.json
|
|
23
|
+
/vault/.obsidian/workspace-mobile.json
|
|
24
|
+
/vault/.obsidian/cache/
|
|
25
|
+
/vault/.trash/
|
|
26
|
+
|
|
27
|
+
# Local render/output byproducts; keep source drafts in workbench tracked
|
|
28
|
+
/workbench/exports/*
|
|
29
|
+
!/workbench/exports/.gitkeep
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
# BeeWeave Skills
|
|
2
|
+
|
|
3
|
+
BeeWeave skills are markdown instructions that agents read when a workflow is
|
|
4
|
+
triggered. They live under `.skills/` and are installed in two different ways:
|
|
5
|
+
|
|
6
|
+
- **Project-local skills**: the full skill set, installed into a project agent
|
|
7
|
+
directory such as `.claude/skills/`, `.codex/skills/`, or `.agents/skills/`.
|
|
8
|
+
- **Global skills**: a small portable subset, installed into global agent
|
|
9
|
+
directories such as `~/.claude/skills/` or `~/.codex/skills/`.
|
|
10
|
+
|
|
11
|
+
The global set is intentionally small. Too many globally visible skills make
|
|
12
|
+
agents harder to predict and users harder to orient.
|
|
13
|
+
|
|
14
|
+
## Global Skill Policy
|
|
15
|
+
|
|
16
|
+
By default, BeeWeave installs only three global skills:
|
|
17
|
+
|
|
18
|
+
```text
|
|
19
|
+
beeweave-update
|
|
20
|
+
beeweave-query
|
|
21
|
+
beeweave-ingest
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
These are the core cross-project workflows:
|
|
25
|
+
|
|
26
|
+
| Skill | What it does | Why global |
|
|
27
|
+
|---|---|---|
|
|
28
|
+
| `beeweave-update` | Sync the current project's durable knowledge into the vault | Useful from any codebase |
|
|
29
|
+
| `beeweave-query` | Ask questions against the compiled vault | Read-only and useful anywhere |
|
|
30
|
+
| `beeweave-ingest` | Distill documents, URLs, exports, logs, and inbox captures into wiki pages | General source-ingest entrypoint |
|
|
31
|
+
|
|
32
|
+
Advanced users can explicitly add a few recommended extra global skills:
|
|
33
|
+
|
|
34
|
+
```bash
|
|
35
|
+
bwe setup --global-extra beeweave-capture,beeweave-context-pack
|
|
36
|
+
bash setup.sh --global-extra beeweave-capture,beeweave-context-pack
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
Supported extras:
|
|
40
|
+
|
|
41
|
+
| Skill | What it does | Notes |
|
|
42
|
+
|---|---|---|
|
|
43
|
+
| `beeweave-capture` | Save current-session findings to inbox/wiki | Prefer quick capture to inbox, then promote with `beeweave-ingest` |
|
|
44
|
+
| `beeweave-context-pack` | Package vault context for another agent or task | Pulls knowledge from vault; it does not save the current chat |
|
|
45
|
+
| `beeweave-digest` | Generate a daily, weekly, monthly, or custom-period knowledge digest | Useful for review workflows |
|
|
46
|
+
| `beeweave-status` | Show ingest status, pending delta, and vault health | Operational overview |
|
|
47
|
+
| `beeweave-memory-bridge` | Browse and compare knowledge by source agent | Most useful after importing multiple agent histories |
|
|
48
|
+
|
|
49
|
+
## Install Shape
|
|
50
|
+
|
|
51
|
+
Interactive setup shows the same shape:
|
|
52
|
+
|
|
53
|
+
```text
|
|
54
|
+
Global skills
|
|
55
|
+
Always installed:
|
|
56
|
+
[x] beeweave-update
|
|
57
|
+
[x] beeweave-query
|
|
58
|
+
[x] beeweave-ingest
|
|
59
|
+
|
|
60
|
+
Optional advanced global skills:
|
|
61
|
+
[ ] beeweave-capture
|
|
62
|
+
[ ] beeweave-context-pack
|
|
63
|
+
[ ] beeweave-digest
|
|
64
|
+
[ ] beeweave-status
|
|
65
|
+
[ ] beeweave-memory-bridge
|
|
66
|
+
|
|
67
|
+
Workbench/project-local skills:
|
|
68
|
+
beeweave-article-writer — long-form articles, blog posts, essays, and opinion pieces
|
|
69
|
+
beeweave-social-writer — X/Twitter posts, threads, short takes, and social copy
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
After global skill selection, setup asks which agents to install for.
|
|
73
|
+
|
|
74
|
+
## Wiki Skills
|
|
75
|
+
|
|
76
|
+
Everything below lives under `.skills/wiki/`. Project-local installs get the
|
|
77
|
+
full set.
|
|
78
|
+
|
|
79
|
+
| Skill | What it does | Global recommendation |
|
|
80
|
+
|---|---|---|
|
|
81
|
+
| `beeweave-update` | Sync durable knowledge from the current project into the vault: architecture decisions, patterns, key abstractions, trade-offs, and project context | Default global |
|
|
82
|
+
| `beeweave-query` | Search and synthesize answers from the compiled vault, including multi-hop relationship queries and fast summary-only lookup | Default global |
|
|
83
|
+
| `beeweave-ingest` | Distill external sources into interconnected wiki pages: documents, folders, PDFs, URLs, logs, transcripts, exports, raw text, and `workbench/inbox` captures | Default global |
|
|
84
|
+
| `beeweave-capture` | Preserve the current conversation or session findings as structured wiki knowledge; quick mode stages files under `workbench/inbox/captures/` | Optional extra |
|
|
85
|
+
| `beeweave-context-pack` | Produce a token-bounded context pack from vault pages for another agent, skill, or downstream task | Optional extra |
|
|
86
|
+
| `beeweave-digest` | Generate a human-readable knowledge digest for a day, week, month, or custom period | Optional extra |
|
|
87
|
+
| `beeweave-status` | Report what has been ingested, what is pending, source delta, token footprint, and graph structure insights | Optional extra |
|
|
88
|
+
| `beeweave-memory-bridge` | Browse and diff wiki knowledge by source tool, such as Claude vs Codex vs Hermes | Optional extra |
|
|
89
|
+
| `beeweave-core` | Explain the underlying LLM Wiki pattern, vault schema, frontmatter, relationships, retrieval primitives, and config resolution protocol | Project-local |
|
|
90
|
+
| `beeweave-setup` | Initialize vault structure, special files, Obsidian config, `.env`, and optional capture hooks | Project-local |
|
|
91
|
+
| `beeweave-switch` | Manage named vault profiles under `~/.beeweave/config.NAME` and switch the active default vault | Project-local |
|
|
92
|
+
| `beeweave-lint` | Audit vault health: orphan pages, broken links, missing frontmatter, missing summaries, stale content, contradictions, and optional consolidation | Project-local |
|
|
93
|
+
| `beeweave-cross-linker` | Scan the vault and insert missing `[[wikilinks]]` to strengthen the knowledge graph | Project-local |
|
|
94
|
+
| `beeweave-tag-taxonomy` | Audit and normalize tags using the controlled vocabulary in `_meta/taxonomy.md` | Project-local |
|
|
95
|
+
| `beeweave-dedup` | Detect identity collisions and merge duplicate pages under different names | Project-local |
|
|
96
|
+
| `beeweave-rebuild` | Archive, rebuild, or restore the vault | Project-local |
|
|
97
|
+
| `beeweave-daily-update` | Run a daily maintenance pass: source freshness, index refresh, hot cache update, and optional cron/notification setup | Project-local |
|
|
98
|
+
| `beeweave-stage-commit` | Review and promote staged pages from `_staging/` when `WIKI_STAGED_WRITES=true` | Project-local |
|
|
99
|
+
| `beeweave-impl-validator` | Validate whether an implementation or skill output matches its stated goal; often used as a helper subagent | Project-local |
|
|
100
|
+
| `beeweave-graph-colorize` | Rewrite Obsidian graph color groups by tag, folder, category, or visibility | Project-local |
|
|
101
|
+
| `beeweave-dashboard` | Create Obsidian Bases or Dataview dashboard views over vault content | Project-local |
|
|
102
|
+
| `beeweave-synthesize` | Discover synthesis opportunities across concepts and create `synthesis/` pages | Project-local |
|
|
103
|
+
| `beeweave-research` | Run multi-round web research and file the results into the vault | Project-local |
|
|
104
|
+
| `beeweave-export` | Export the vault graph to JSON, GraphML, Neo4j Cypher, browser HTML, or OKF markdown bundle | Project-local |
|
|
105
|
+
| `beeweave-import` | Import from `graph.json` stubs or an OKF markdown bundle into the current vault | Project-local |
|
|
106
|
+
| `beeweave-vault-skill-factory` | Generate a portable Agent Skill from mature vault pages into a review directory | Project-local |
|
|
107
|
+
| `beeweave-skill-creator` | Create, edit, package, benchmark, and improve Agent Skills | Project-local |
|
|
108
|
+
| `beeweave-history-ingest` | Route agent-history ingestion requests to the specialized history skill for the selected tool | Project-local |
|
|
109
|
+
| `beeweave-agent` | Search a specific agent's raw history by topic, ingest the relevant sessions, and return a synthesized answer | Project-local |
|
|
110
|
+
| `beeweave-claude-ingest` | Mine Claude Code and Claude desktop history, memory files, sessions, and audit logs into the vault | Project-local |
|
|
111
|
+
| `beeweave-codex-ingest` | Mine Codex CLI sessions, rollout logs, and session indexes into the vault | Project-local |
|
|
112
|
+
| `beeweave-copilot-ingest` | Mine GitHub Copilot CLI and VS Code Copilot Chat history into the vault | Project-local |
|
|
113
|
+
| `beeweave-hermes-ingest` | Mine Hermes memories and sessions into the vault | Project-local |
|
|
114
|
+
| `beeweave-openclaw-ingest` | Mine OpenClaw `MEMORY.md`, daily notes, and session logs into the vault | Project-local |
|
|
115
|
+
| `beeweave-pi-ingest` | Mine Pi coding agent session history into the vault | Project-local |
|
|
116
|
+
|
|
117
|
+
## Workbench Skills
|
|
118
|
+
|
|
119
|
+
Creation-specific skills live under `.skills/workbench/`. They are installed
|
|
120
|
+
project-locally with the full skill set, not globally.
|
|
121
|
+
|
|
122
|
+
| Skill | What it does |
|
|
123
|
+
|---|---|
|
|
124
|
+
| `beeweave-article-writer` | Long-form articles, blog posts, essays, and opinion pieces |
|
|
125
|
+
| `beeweave-social-writer` | X/Twitter posts, threads, short takes, and social copy |
|
|
126
|
+
|
|
127
|
+
## Why Most Skills Stay Local
|
|
128
|
+
|
|
129
|
+
Many BeeWeave skills are powerful maintenance or migration tools. They are
|
|
130
|
+
useful, but they should only appear when the user is intentionally working on
|
|
131
|
+
the vault or workbench.
|
|
132
|
+
|
|
133
|
+
Keep these local by default:
|
|
134
|
+
|
|
135
|
+
- **High-impact writes**: `beeweave-rebuild`, `beeweave-dedup`, `beeweave-import`, `beeweave-stage-commit`
|
|
136
|
+
- **Vault maintenance**: `beeweave-lint`, `beeweave-cross-linker`, `beeweave-tag-taxonomy`, `beeweave-synthesize`
|
|
137
|
+
- **Machine setup**: `beeweave-setup`, `beeweave-switch`, `beeweave-daily-update`
|
|
138
|
+
- **Agent history mining**: `beeweave-history-ingest`, `beeweave-agent`, and all agent-specific history ingest skills
|
|
139
|
+
- **Skill development**: `beeweave-skill-creator`, `beeweave-vault-skill-factory`, `beeweave-impl-validator`
|
|
140
|
+
- **Obsidian-specific UI/config**: `beeweave-graph-colorize`, `beeweave-dashboard`
|
|
141
|
+
|
|
142
|
+
This keeps the global surface area small while preserving the full BeeWeave
|
|
143
|
+
toolbox inside project-local installs.
|
|
144
|
+
|
|
145
|
+
## OKF
|
|
146
|
+
|
|
147
|
+
OKF means **Open Knowledge Format** in BeeWeave's export/import workflow.
|
|
148
|
+
|
|
149
|
+
- `beeweave-export` can create an OKF markdown bundle.
|
|
150
|
+
- `beeweave-import` can import an OKF bundle into another vault.
|
|
151
|
+
- Unlike `graph.json`, which is mostly a graph skeleton, OKF preserves full
|
|
152
|
+
markdown page bodies and is better for vault-to-vault transfer.
|
|
153
|
+
|
|
154
|
+
Use OKF when you want to move knowledge, not just inspect the graph.
|