Supercharge your daily reading. Turn newsletters, videos, and articles into a personalized, self-improving knowledge pipeline.
Knowledge Loop is an AI-powered personal content intelligence pipeline (designed for Antigravity). It automates daily knowledge digestion β ingesting newsletters, YouTube videos, social media posts, and web articles β then summarizing, distilling, and surfacing actionable insights through AI-powered suggestions that continuously learn and improve based on your feedback.
Knowledge Loop creates a knowledge loop: you feed it content sources, it digests and summarizes them, suggests actionable next steps, learns your preferences from your feedback, and gets smarter over time.
graph LR
Sources["π© Newsletters\nπ¬ YouTube\nπ§΅ Threads\nπ Websites"] --> Ingest["βοΈ Ingest Skills"]
Ingest --> Reports["π Summary Reports"]
Reports --> Distill["π§ͺ Daily Distillation"]
Reports --> Suggest["π‘ AI Suggestions"]
Suggest --> Review["π€ User Review"]
Review --> Prefs["π― Preferences"]
Prefs --> Suggest
| Skill | Description |
|---|---|
| π© Newsletter Digest | Fetches unread newsletters from Gmail and summarizes them into Markdown reports |
| π¬ YouTube Transcription | Transcribes and documents YouTube videos into structured Markdown |
| π§΅ Threads Ingestion | Extracts full content from Threads posts via browser automation |
| π Website Ingestion | Fetches and summarizes web articles via Jina Reader API |
| ποΈ Daily Distillation | Synthesizes the day's reports into a Knowledge Distillation document |
| π‘ Suggestion Review | AI-generated actionable suggestions scored by a rubric grader |
| π§ Gmail Management | Send, read, and manage Gmail via GWS CLI |
| β Google Tasks | Manage task lists and tasks for the Delegate workflow |
| π Browser Automation | Automate browser tasks: navigation, scraping, screenshots |
If you want to get up and running in 2 minutes:
- Clone & Setup: Clone the repository and install the required third-party skills.
- Authorize GWS: Install
gwsCLI and run auth commands. - Configure Gmail: Create Gmail label
newsletterand setup filters. - Configure Tasks: Create a Google Tasks list named
Delegate. - Personalize Goals: Edit your personal goals in goals.md.
- Trigger Pipeline: Ask Antigravity:
"run my daily workflow".
Click "Use this template" on GitHub, or clone locally:
git clone https://github.com/<your-username>/knowledge-loop.git
cd knowledge-loopEnsure Node.js (v18+) is installed. This is required to run the skills installer utility (npx skills).
The template includes 13 built-in skills. To install the 5 third-party dependencies:
npx skills experimental_installThis installs: agent-browser, architecture-decision-records, gws-gmail, gws-shared, gws-tasks.
Required for Gmail and Google Tasks automation:
brew tap googleworkspace/cli
brew install gws
gws auth setup
gws auth loginThe pipeline needs specific external resources to run correctly:
The ingest-newsletter skill processes unread emails with the newsletter label (label:newsletter is:unread).
- Web UI (Recommended for auto-routing):
- Open Gmail.
- Click Create new label in the left sidebar and name it
newsletter(case-sensitive). - Create a search filter (e.g. from your favorite newsletter senders) and check Apply the label:
newsletter(and optionally Skip the Inbox).
- CLI (Label creation only):
gws gmail users labels create \ --params '{"userId": "me"}' \ --json '{"name": "newsletter", "labelListVisibility": "labelShow", "messageListVisibility": "show"}'
The daily-workflow skill looks for a task list named Delegate to find URLs (YouTube, Threads, Websites) to ingest.
- CLI (Recommended):
gws tasks tasklists insert --json '{"title": "Delegate"}' - Web UI:
Open Gmail/Calendar side panel, click Tasks -> Create new list -> name it
Delegate(case-sensitive).
- Edit goals.md β Define your personal goals to calibrate suggestion scoring.
- Edit rubric_blocklist.md β Add topics you want auto-filtered from suggestions.
- Add prompts to
data/prompts/β Fill in the template files or add your own.
Trigger skills by typing natural language commands in your Antigravity chat:
| Trigger phrase | Skill invoked |
|---|---|
| "summarize my newsletters" | ingest-newsletter |
| "run my daily workflow" | daily-workflow |
| "distill today's reports" | daily-distiller |
| "fetch this Threads post: <url>" | ingest-threads |
| "transcribe this YouTube video: <url>" | ingest-youtube |
| "summarize this page: <url>" | ingest-website |
| "review my suggestions" | review-suggestions |
The daily-workflow skill chains the entire pipeline in an optimized async/sync order:
- Discover tasks from the Google Tasks
Delegatelist. - Fire YouTube transcriptions asynchronously in the background.
- Process unread newsletters from Gmail.
- Process Threads posts.
- Process Website articles.
- Await and complete YouTube transcription tasks.
- Run daily knowledge distillation.
- Review AI suggestions.
Knowledge Loop is designed around a Modular, Skill-Based Agentic Architecture built explicitly for Google's Antigravity agent.
Instead of traditional monolithic code, the agent operates directly on Skills. A skill is a self-contained bundle consisting of:
- A
SKILL.mdfile that gives the agent instructions, system prompts, schemas, and commands. - An optional
README.mdfile summarizing features and usage. - Helper references, scripts, or local testing configurations.
graph TD
AG[Antigravity Agent] -->|Reads & Executes| Skill[".agents/skills/*"]
Skill -->|Defines| Instructions["SKILL.md (YAML frontmatter + commands)"]
Skill -->|Optionally Runs| CLI["External CLI Tools (gws, yt2doc, etc.)"]
Skill -->|Reads/Writes| Data["data/ (goals, preferences, suggestions)"]
sequenceDiagram
participant U as User
participant AG as Antigravity
participant IS as Ingest Skills
participant R as reports/
participant SP as suggestions_pending.md
participant UP as user_preferences.md
U->>AG: "run my daily workflow"
AG->>IS: Execute ingestion (Gmail/Tasks)
IS->>R: Write markdown reports
AG->>SP: Generate & score suggestions
U->>AG: "review my suggestions"
AG->>UP: Update learned user preferences
Refer to this map to quickly locate system files and design details:
| Category | File / Path | Purpose |
|---|---|---|
| Agent Rules | AGENTS.md | Coding conventions, strict tool constraints, and workflow guidelines. |
| Glossary | CONTEXT.md | Definition of project terms like Dreamer, Trace, and Memory Injection. |
| Skill Logic | .agents/skills/ |
Source folders of all 13 built-in and third-party skills. |
| Preferences | user_preferences.md | Key-value store of user preferences updated via reviews. |
| Goal Settings | goals.md | User goals used by the suggestion scoring rubric. |
| Safety Hooks | prevent_dangerous_commands.sh | Hook executing before command runs to prevent unsafe operations. |
| Bugs & RCAs | docs/rca/ |
Post-mortem logs of system errors and their primary root causes. |
| Decision Logs | docs/decision_logs/ |
Session logs mapping conversational steps to architectural rationale. |
| Unified Backlog | backlog.md | Shared tracking document for all pending features and bug fixes. |
| Settings | settings.json | Global configuration for agent settings and lifecycle hooks. |
By default, both reports and conversation default to English. You can configure them independently in user_preferences.md under the ## Configuration section:
- Preferred Report Language: Controls the language of the generated reports and summaries (e.g.,
Traditional Chinese,English). - Preferred Conversation Language: Controls the language used by the agent when communicating directly with you in chat.
To change them:
- Edit user_preferences.md and set the desired language values:
## Configuration - **Preferred Report Language**: Traditional Chinese - **Preferred Conversation Language**: Traditional Chinese
- (Optional) Update rubric_blocklist.md β add ambiguity phrases in your target language.
- Lessons learned are recorded in
learnings/lessons.mdafter notable executions. - Bugs and unexpected behaviors are documented as Root Cause Analyses in
docs/rca/(see AGENTS.md for RCA requirements). - Architectural decisions follow the ADR format (
architecture-decision-recordsskill). - Suggestions build your preference profile over time via the
review-suggestionsskill.