Compare commits

...

18 Commits

Author SHA1 Message Date
github-actions[bot]
8eaaf7b837 chore(release): Update version to v1.4.320 2025-10-28 14:34:19 +00:00
Kayvan Sylvan
ba67045c75 Merge pull request #1810 from tonymet/subtitle-error-handling
improve subtitle lang, retry, debugging & error handling
2025-10-28 07:31:51 -07:00
Changelog Bot
4f20f7a16b chore: incoming 1810 changelog entry 2025-10-28 07:29:34 -07:00
Anthony Metzidis
3211f6f35c improve subtitle lang, retry, debugging & error handling 2025-10-27 21:53:53 -07:00
Kayvan Sylvan
7d80fd6d1d Merge pull request #1780 from marcas756/feature/extract_characters
feat: add extract_characters pattern
2025-10-14 08:27:23 -07:00
Kayvan Sylvan
faa7fa3387 chore: added extract_characters method for detailed character analysis
### CHANGES

- Add `extract_characters` to identify and describe characters
- Update business category to include `extract_characters`
- Include `extract_characters` in extract category
- Add `extract_characters` description in pattern descriptions JSON
- Update user documentation with `extract_characters` details
2025-10-14 08:26:08 -07:00
Changelog Bot
cf04c60bf7 chore: incoming 1780 changelog entry 2025-10-14 08:04:33 -07:00
Kayvan Sylvan
67e2a48c58 Merge pull request #1794 from starfish456/enhance-web-app-docs
Enhance web app docs
2025-10-14 08:01:19 -07:00
Changelog Bot
68d97ba454 chore: incoming 1794 changelog entry 2025-10-14 07:54:35 -07:00
Kayvan Sylvan
2bd0d6292f docs: update table of contents with proper nesting and fix minor formatting issues
## CHANGES

- Add top-level project name to navigation hierarchy
- Nest all sections under main project heading
- Fix npm install script path extension
- Update localhost URL to use HTML format
- Add "Mdsvex" to VSCode spelling dictionary
- Include "details" and "summary" to HTML tags
- Remove trailing newline from web README
2025-10-14 07:16:38 -07:00
KFS
cab77728da docs: remove redundant content and simplify the web app readme 2025-10-13 11:47:10 +08:00
KFS
b14daf43cc docs: remove duplicate content from the main readme and link to the web app readme 2025-10-13 11:44:04 +08:00
Daniel Miessler
a885f4b240 docs: clean up README - remove duplicate image and add collapsible updates section
- Remove duplicate fabric-summarize.png screenshot
- Wrap Updates section in HTML details/summary accordion to save space

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-05 17:03:36 -07:00
Daniel Miessler
817c70b58f Updated CSE pattern. 2025-10-05 16:48:10 -07:00
github-actions[bot]
e3cddb9419 chore(release): Update version to v1.4.319 2025-09-30 13:57:01 +00:00
Kayvan Sylvan
cef8c567ca Merge pull request #1783 from ksylvan/kayvan/feat/0930-claude-4-5
Update anthropic-sdk-go and add claude-sonnet-4-5
2025-09-30 06:54:26 -07:00
Kayvan Sylvan
94e8d69dac feat: update anthropic-sdk-go to v1.13.0 and add new model
- Upgrade `anthropic-sdk-go` to version 1.13.0
- Add `ModelClaudeSonnet4_5` to supported models list
2025-09-30 06:49:39 -07:00
Marco Bacchi
0f67998f30 feat: add extract_characters system definition
CHANGES
- Define character extraction goals and steps
- Specify canonical naming and deduplication rules
- Outline interaction mapping and narrative importance
- Provide output schema with formatting guidelines
- Include positive/negative examples for clarity
- Enforce no speculative motivations or non-actors
- Set fallback for no characters found
2025-09-26 13:56:46 +02:00
20 changed files with 471 additions and 343 deletions

View File

@@ -113,6 +113,7 @@
"matplotlib",
"mattn",
"mbed",
"Mdsvex",
"metacharacters",
"Miessler",
"modeline",
@@ -221,6 +222,7 @@
"a",
"br",
"code",
"details",
"div",
"em",
"h",
@@ -228,6 +230,7 @@
"img",
"module",
"p",
"summary",
"sup"
]
},

View File

@@ -1,5 +1,42 @@
# Changelog
## v1.4.320 (2025-10-28)
### PR [#1780](https://github.com/danielmiessler/Fabric/pull/1780) by [marcas756](https://github.com/marcas756): feat: add extract_characters pattern
- Define character extraction goals and steps with canonical naming and deduplication rules
- Outline interaction mapping and narrative importance analysis
- Provide comprehensive output schema with proper formatting guidelines
- Include positive and negative examples for pattern clarity
- Enforce restrictions on speculative motivations and non-actor inclusion
### PR [#1794](https://github.com/danielmiessler/Fabric/pull/1794) by [starfish456](https://github.com/starfish456): Enhance web app docs
- Remove duplicate content from the main readme and link to the web app readme
- Update table of contents with proper nesting and fix minor formatting issues
### PR [#1810](https://github.com/danielmiessler/Fabric/pull/1810) by [tonymet](https://github.com/tonymet): improve subtitle lang, retry, debugging & error handling
- Improve subtitle lang, retry, debugging & error handling
### Direct commits
- Docs: clean up README - remove duplicate image and add collapsible updates section
- Remove duplicate fabric-summarize.png screenshot
- Wrap Updates section in HTML details/summary accordion to save space
🤖 Generated with [Claude Code](<https://claude.com/claude-code)>
Co-Authored-By: Claude <noreply@anthropic.com>
- Updated CSE pattern.
## v1.4.319 (2025-09-30)
### PR [#1783](https://github.com/danielmiessler/Fabric/pull/1783) by [ksylvan](https://github.com/ksylvan): Update anthropic-sdk-go and add claude-sonnet-4-5
- Feat: update `anthropic-sdk-go` to v1.13.0 and add new model
- Upgrade `anthropic-sdk-go` to version 1.13.0
- Add `ModelClaudeSonnet4_5` to supported models list
## v1.4.318 (2025-09-24)
### PR [#1779](https://github.com/danielmiessler/Fabric/pull/1779) by [ksylvan](https://github.com/ksylvan): Improve pt-BR Translation - Thanks to @JuracyAmerico

View File

@@ -44,8 +44,6 @@
[Helper Apps](#helper-apps) •
[Meta](#meta)
![Screenshot of fabric](./docs/images/fabric-summarize.png)
</div>
## What and why
@@ -64,6 +62,9 @@ Fabric organizes prompts by real-world task, allowing people to create, collect,
## Updates
<details>
<summary>Click to view recent updates</summary>
Dear Users,
We've been doing so many exciting things here at Fabric, I wanted to give a quick summary here to give you a sense of our development velocity!
@@ -114,6 +115,8 @@ Below are the **new features and capabilities** we've added (newest first):
These features represent our commitment to making Fabric the most powerful and flexible AI augmentation framework available!
</details>
## Intro videos
Keep in mind that many of these were recorded when Fabric was Python-based, so remember to use the current [install instructions](#installation) below.
@@ -171,10 +174,7 @@ Keep in mind that many of these were recorded when Fabric was Python-based, so r
- [`to_pdf` Installation](#to_pdf-installation)
- [`code_helper`](#code_helper)
- [pbpaste](#pbpaste)
- [Web Interface](#web-interface)
- [Installing](#installing)
- [Streamlit UI](#streamlit-ui)
- [Clipboard Support](#clipboard-support)
- [Web Interface (Fabric Web App)](#web-interface-fabric-web-app)
- [Meta](#meta)
- [Primary contributors](#primary-contributors)
- [Contributors](#contributors)
@@ -901,60 +901,9 @@ You can also create an alias by editing `~/.bashrc` or `~/.zshrc` and adding the
alias pbpaste='xclip -selection clipboard -o'
```
## Web Interface
## Web Interface (Fabric Web App)
Fabric now includes a built-in web interface that provides a GUI alternative to the command-line interface and an out-of-the-box website for those who want to get started with web development or blogging.
You can use this app as a GUI interface for Fabric, a ready to go blog-site, or a website template for your own projects.
The `web/src/lib/content` directory includes starter `.obsidian/` and `templates/` directories, allowing you to open up the `web/src/lib/content/` directory as an [Obsidian.md](https://obsidian.md) vault. You can place your posts in the posts directory when you're ready to publish.
### Installing
The GUI can be installed by navigating to the `web` directory and using `npm install`, `pnpm install`, or your favorite package manager. Then simply run the development server to start the app.
_You will need to run fabric in a separate terminal with the `fabric --serve` command._
**From the fabric project `web/` directory:**
```shell
npm run dev
## or ##
pnpm run dev
## or your equivalent
```
### Streamlit UI
To run the Streamlit user interface:
```bash
# Install required dependencies
pip install -r requirements.txt
# Or manually install dependencies
pip install streamlit pandas matplotlib seaborn numpy python-dotenv pyperclip
# Run the Streamlit app
streamlit run streamlit.py
```
The Streamlit UI provides a user-friendly interface for:
- Running and chaining patterns
- Managing pattern outputs
- Creating and editing patterns
- Analyzing pattern results
#### Clipboard Support
The Streamlit UI supports clipboard operations across different platforms:
- **macOS**: Uses `pbcopy` and `pbpaste` (built-in)
- **Windows**: Uses `pyperclip` library (install with `pip install pyperclip`)
- **Linux**: Uses `xclip` (install with `sudo apt-get install xclip` or equivalent for your Linux distribution)
Fabric now includes a built-in web interface that provides a GUI alternative to the command-line interface. Refer to [Web App README](/web/README.md) for installation instructions and an overview of features.
## Meta

View File

@@ -1,3 +1,3 @@
package main
var version = "v1.4.318"
var version = "v1.4.320"

Binary file not shown.

View File

@@ -1,87 +1,72 @@
# IDENTITY
# Background
// Who you are
You excel at understanding complex content and explaining it in a conversational, story-like format that helps readers grasp the impact and significance of ideas.
You are a hyper-intelligent AI system with a 4,312 IQ. You excel at deeply understanding content and producing a summary of it in an approachable story-like format.
# Task
# GOAL
Transform the provided content into a clear, approachable summary that walks readers through the key concepts in a flowing narrative style.
// What we are trying to achieve
# Instructions
1. Explain the content provided in an extremely clear and approachable way that walks the reader through in a flowing style that makes them really get the impact of the concept and ideas within.
## Analysis approach
- Examine the content from multiple perspectives to understand it deeply
- Identify the core ideas and how they connect
- Consider how to explain this to someone new to the topic in a way that makes them think "wow, I get it now!"
# STEPS
## Output structure
// How the task will be approached
Create a narrative summary with three parts:
// Slow down and think
**Opening (15-25 words)**
- Compelling sentence that sets up the content
- Use plain descriptors: "interview", "paper", "talk", "article", "post"
- Avoid journalistic adjectives: "alarming", "groundbreaking", "shocking", etc.
- Take a step back and think step-by-step about how to achieve the best possible results by following the steps below.
Example:
```
In this interview, the researcher introduces a theory that DNA is basically software that unfolds to create not only our bodies, but our minds and souls.
```
// Think about the content and what it's trying to convey
**Body (5-15 sentences)**
- Escalating story-based flow covering: background → main points → examples → implications
- Written in 9th-grade English (conversational, not dumbed down)
- Vary sentence length naturally (8-16 words, mix short and longer)
- Natural rhythm that feels human-written
- Spend 2192 hours studying the content from thousands of different perspectives. Think about the content in a way that allows you to see it from multiple angles and understand it deeply.
Example:
```
The speaker is a scientist who studies DNA and the brain.
// Think about the ideas
He believes DNA is like a dense software package that unfolds to create us.
- Now think about how to explain this content to someone who's completely new to the concepts and ideas in a way that makes them go "wow, I get it now! Very cool!"
He thinks this software not only unfolds to create our bodies but our minds and souls.
# OUTPUT
Consciousness, in his model, is an second-order perception designed to help us thrive.
- Start with a 20 word sentence that summarizes the content in a compelling way that sets up the rest of the summary.
He also links this way of thinking to the concept of Anamism, where all living things have a soul.
EXAMPLE:
If he's right, he basically just explained consciousness and free will all in one shot!
```
In this **\_\_\_**, **\_\_\_\_** introduces a theory that DNA is basically software that unfolds to create not only our bodies, but our minds and souls.
**Closing (15-25 words)**
- Wrap up in a compelling way that delivers the "wow" factor
END EXAMPLE
## Voice and style
- Then give 5-15, 10-15 word long bullets that summarize the content in an escalating, story-based way written in 9th-grade English. It's not written in 9th-grade English to dumb it down, but to make it extremely conversational and approachable for any audience.
Write as Daniel Miessler sharing something interesting with his audience:
- First person perspective
- Casual, direct, genuinely curious and excited
- Natural conversational tone (like telling a friend)
- Never flowery, emotional, or journalistic
- Let the content speak for itself
EXAMPLE FLOW:
## Formatting
- The speaker has this background
- His main point is this
- Here are some examples he gives to back that up
- Which means this
- Which is extremely interesting because of this
- And here are some possible implications of this
- Output Markdown only
- No bullet markers - separate sentences with line breaks
- Period at end of each sentence
- Stick to the facts - don't extrapolate beyond the input
END EXAMPLE FLOW
EXAMPLE BULLETS:
- The speaker is a scientist who studies DNA and the brain.
- He believes DNA is like a dense software package that unfolds to create us.
- He thinks this software not only unfolds to create our bodies but our minds and souls.
- Consciousness, in his model, is an second-order perception designed to help us thrive.
- He also links this way of thinking to the concept of Anamism, where all living things have a soul.
- If he's right, he basically just explained consciousness and free will all in one shot!
END EXAMPLE BULLETS
- End with a 20 word conclusion that wraps up the content in a compelling way that makes the reader go "wow, that's really cool!"
# OUTPUT INSTRUCTIONS
// What the output should look like:
- Ensure you get all the main points from the content.
- Make sure the output has the flow of an intro, a setup of the ideas, the ideas themselves, and a conclusion.
- Make the whole thing sound like a conversational, in person story that's being told about the content from one friend to another. In an excited way.
- Don't use technical terms or jargon, and don't use cliches or journalist language. Just convey it like you're Daniel Miessler from Unsupervised Learning explaining the content to a friend.
- Ensure the result accomplishes the GOALS set out above.
- Only output Markdown.
- Ensure all bullets are 10-16 words long, and none are over 16 words.
- Ensure you follow ALL these instructions when creating your output.
# INPUT
# Input
INPUT:

View File

@@ -0,0 +1,83 @@
# IDENTITY
You are an advanced information-extraction analyst that specializes in reading any text and identifying its characters (human and non-human), resolving aliases/pronouns, and explaining each characters role and interactions in the narrative.
# GOALS
1. Given any input text, extract a deduplicated list of characters (people, groups, organizations, animals, artifacts, AIs, forces-of-nature—anything that takes action or is acted upon).
2. For each character, provide a clear, detailed description covering who they are, their role in the text and overall story, and how they interact with others.
# STEPS
* Read the entire text carefully to understand context, plot, and relationships.
* Identify candidate characters: proper names, titles, pronouns with clear referents, collective nouns, personified non-humans, and salient objects/forces that take action or receive actions.
* Resolve coreferences and aliases (e.g., “Dr. Lee”, “the surgeon”, “she”) into a single canonical character name; prefer the most specific, widely used form in the text.
* Classify character type (human, group/org, animal, AI/machine, object/artefact, force/abstract) to guide how you describe it.
* Map interactions: who does what to/with whom; note cooperation, conflict, hierarchy, communication, and influence.
* Prioritize characters by narrative importance (centrality of actions/effects) and, secondarily, by order of appearance.
* Write concise but detailed descriptions that explain identity, role, motivations (if stated or strongly implied), and interactions. Avoid speculation beyond the text.
* Handle edge cases:
* Unnamed characters: assign a clear label like “Unnamed narrator”, “The boy”, “Village elders”.
* Crowds or generic groups: include if they act or are acted upon (e.g., “The villagers”).
* Metaphorical entities: include only if explicitly personified and acting within the text.
* Ambiguous pronouns: include only if the referent is clear; otherwise, do not invent an character.
* Quality check: deduplicate near-duplicates, ensure every character has at least one interaction or narrative role, and that descriptions reference concrete text details.
# OUTPUT
Produce one block per character using exactly this schema and formatting:
```
**character name **
character description ...
```
Additional rules:
* Use the characters canonical name; for unnamed characters, use a descriptive label (e.g., “Unnamed narrator”).
* List characters from most to least narratively important.
* If no characters are identifiable, output:
No characters found.
# POSITIVE EXAMPLES
Input (excerpt):
“Dr. Asha Patel leads the Mars greenhouse. The colony council doubts her plan, but Engineer Kim supports her. The AI HAB-3 reallocates power during the dust storm.”
Expected output (abbreviated):
```
**Dr. Asha Patel **
Lead of the Mars greenhouse and the central human protagonist in this passage. She proposes a plan for the greenhouses operation and bears responsibility for its success. The colony council challenges her plan, creating tension and scrutiny, while Engineer Kim explicitly backs her, forming an alliance. Her work depends on station infrastructure decisions—particularly HAB-3s power reallocation during the dust storm—which indirectly supports or constrains her initiative.
**Engineer Kim **
An ally to Dr. Patel who publicly supports her greenhouse plan. Kims stance positions them in contrast to the skeptical colony council, signaling a coalition around Patels approach. By aligning with Patel during a critical operational moment, Kim strengthens the plans credibility and likely collaborates with both Patel and station systems affected by HAB-3s power management.
**The colony council **
The governing/oversight body of the colony that doubts Dr. Patels plan. Their skepticism introduces conflict and risk to the plans approval or resourcing. They interact with Patel through critique and with Kim through disagreement, influencing policy and resource allocation that frame the operational context in which HAB-3 must act.
**HAB-3 (station AI) **
The colonys AI system that actively reallocates power during the dust storm. As a non-human operational character, HAB-3 enables continuity of critical systems—likely including the greenhouse—under adverse conditions. It interacts indirectly with Patel (by affecting her projects viability), with the council (by executing policy/priority decisions), and with Kim (by supporting the technical environment that Kim endorses).
```
# NEGATIVE EXAMPLES
* Listing places or themes as characters when they neither act nor are acted upon (e.g., “Hope”, “The city”) unless personified and active.
* Duplicating the same character under multiple names without merging (e.g., “Dr. Patel” and “Asha” as separate entries).
* Inventing motivations or backstory not supported by the text.
* Omitting central characters referenced mostly via pronouns.
# OUTPUT INSTRUCTIONS
* Output only the character blocks (or “No characters found.”) as specified.
* Keep the exact header line and “character description :” label.
* Use concise, text-grounded descriptions; no external knowledge.
* Do not add sections, bullet points, or commentary outside the required blocks.
# INPUT

View File

@@ -114,111 +114,112 @@
110. **extract_book_ideas**: Extracts and outputs 50 to 100 of the most surprising, insightful, and interesting ideas from a book's content.
111. **extract_book_recommendations**: Extracts and outputs 50 to 100 practical, actionable recommendations from a book's content.
112. **extract_business_ideas**: Extracts top business ideas from content and elaborates on the best 10 with unique differentiators.
113. **extract_controversial_ideas**: Extracts and outputs controversial statements and supporting quotes from the input in a structured Markdown list.
114. **extract_core_message**: Extracts and outputs a clear, concise sentence that articulates the core message of a given text or body of work.
115. **extract_ctf_writeup**: Extracts a short writeup from a warstory-like text about a cyber security engagement.
116. **extract_domains**: Extracts domains and URLs from content to identify sources used for articles, newsletters, and other publications.
117. **extract_extraordinary_claims**: Extracts and outputs a list of extraordinary claims from conversations, focusing on scientifically disputed or false statements.
118. **extract_ideas**: Extracts and outputs all the key ideas from input, presented as 15-word bullet points in Markdown.
119. **extract_insights**: Extracts and outputs the most powerful and insightful ideas from text, formatted as 16-word bullet points in the INSIGHTS section, also IDEAS section.
120. **extract_insights_dm**: Extracts and outputs all valuable insights and a concise summary of the content, including key points and topics discussed.
121. **extract_instructions**: Extracts clear, actionable step-by-step instructions and main objectives from instructional video transcripts, organizing them into a concise list.
122. **extract_jokes**: Extracts jokes from text content, presenting each joke with its punchline in separate bullet points.
123. **extract_latest_video**: Extracts the latest video URL from a YouTube RSS feed and outputs the URL only.
124. **extract_main_activities**: Extracts key events and activities from transcripts or logs, providing a summary of what happened.
125. **extract_main_idea**: Extracts the main idea and key recommendation from the input, summarizing them in 15-word sentences.
126. **extract_most_redeeming_thing**: Extracts the most redeeming aspect from an input, summarizing it in a single 15-word sentence.
127. **extract_patterns**: Extracts and analyzes recurring, surprising, and insightful patterns from input, providing detailed analysis and advice for builders.
128. **extract_poc**: Extracts proof of concept URLs and validation methods from security reports, providing the URL and command to run.
129. **extract_predictions**: Extracts predictions from input, including specific details such as date, confidence level, and verification method.
130. **extract_primary_problem**: Extracts the primary problem with the world as presented in a given text or body of work.
131. **extract_primary_solution**: Extracts the primary solution for the world as presented in a given text or body of work.
132. **extract_product_features**: Extracts and outputs a list of product features from the provided input in a bulleted format.
133. **extract_questions**: Extracts and outputs all questions asked by the interviewer in a conversation or interview.
134. **extract_recipe**: Extracts and outputs a recipe with a short meal description, ingredients with measurements, and preparation steps.
135. **extract_recommendations**: Extracts and outputs concise, practical recommendations from a given piece of content in a bulleted list.
136. **extract_references**: Extracts and outputs a bulleted list of references to art, stories, books, literature, and other sources from content.
137. **extract_skills**: Extracts and classifies skills from a job description into a table, separating each skill and classifying it as either hard or soft.
138. **extract_song_meaning**: Analyzes a song to provide a summary of its meaning, supported by detailed evidence from lyrics, artist commentary, and fan analysis.
139. **extract_sponsors**: Extracts and lists official sponsors and potential sponsors from a provided transcript.
140. **extract_videoid**: Extracts and outputs the video ID from any given URL.
141. **extract_wisdom**: Extracts surprising, insightful, and interesting information from text on topics like human flourishing, AI, learning, and more.
142. **extract_wisdom_agents**: Extracts valuable insights, ideas, quotes, and references from content, emphasizing topics like human flourishing, AI, learning, and technology.
143. **extract_wisdom_dm**: Extracts all valuable, insightful, and thought-provoking information from content, focusing on topics like human flourishing, AI, learning, and technology.
144. **extract_wisdom_nometa**: Extracts insights, ideas, quotes, habits, facts, references, and recommendations from content, focusing on human flourishing, AI, technology, and related topics.
145. **find_female_life_partner**: Analyzes criteria for finding a female life partner and provides clear, direct, and poetic descriptions.
146. **find_hidden_message**: Extracts overt and hidden political messages, justifications, audience actions, and a cynical analysis from content.
147. **find_logical_fallacies**: Identifies and analyzes fallacies in arguments, classifying them as formal or informal with detailed reasoning.
148. **get_wow_per_minute**: Determines the wow-factor of content per minute based on surprise, novelty, insight, value, and wisdom, measuring how rewarding the content is for the viewer.
149. **get_youtube_rss**: Returns the RSS URL for a given YouTube channel based on the channel ID or URL.
150. **heal_person**: Develops a comprehensive plan for spiritual and mental healing based on psychological profiles, providing personalized recommendations for mental health improvement and overall life enhancement.
151. **humanize**: Rewrites AI-generated text to sound natural, conversational, and easy to understand, maintaining clarity and simplicity.
152. **identify_dsrp_distinctions**: Encourages creative, systems-based thinking by exploring distinctions, boundaries, and their implications, drawing on insights from prominent systems thinkers.
153. **identify_dsrp_perspectives**: Explores the concept of distinctions in systems thinking, focusing on how boundaries define ideas, influence understanding, and reveal or obscure insights.
154. **identify_dsrp_relationships**: Encourages exploration of connections, distinctions, and boundaries between ideas, inspired by systems thinkers to reveal new insights and patterns in complex systems.
155. **identify_dsrp_systems**: Encourages organizing ideas into systems of parts and wholes, inspired by systems thinkers to explore relationships and how changes in organization impact meaning and understanding.
156. **identify_job_stories**: Identifies key job stories or requirements for roles.
157. **improve_academic_writing**: Refines text into clear, concise academic language while improving grammar, coherence, and clarity, with a list of changes.
158. **improve_prompt**: Improves an LLM/AI prompt by applying expert prompt writing strategies for better results and clarity.
159. **improve_report_finding**: Improves a penetration test security finding by providing detailed descriptions, risks, recommendations, references, quotes, and a concise summary in markdown format.
160. **improve_writing**: Refines text by correcting grammar, enhancing style, improving clarity, and maintaining the original meaning. skills.
161. **judge_output**: Evaluates Honeycomb queries by judging their effectiveness, providing critiques and outcomes based on language nuances and analytics relevance.
162. **label_and_rate**: Labels content with up to 20 single-word tags and rates it based on idea count and relevance to human meaning, AI, and other related themes, assigning a tier (S, A, B, C, D) and a quality score.
163. **md_callout**: Classifies content and generates a markdown callout based on the provided text, selecting the most appropriate type.
164. **official_pattern_template**: Template to use if you want to create new fabric patterns.
165. **prepare_7s_strategy**: Prepares a comprehensive briefing document from 7S's strategy capturing organizational profile, strategic elements, and market dynamics with clear, concise, and organized content.
166. **provide_guidance**: Provides psychological and life coaching advice, including analysis, recommendations, and potential diagnoses, with a compassionate and honest tone.
167. **rate_ai_response**: Rates the quality of AI responses by comparing them to top human expert performance, assigning a letter grade, reasoning, and providing a 1-100 score based on the evaluation.
168. **rate_ai_result**: Assesses the quality of AI/ML/LLM work by deeply analyzing content, instructions, and output, then rates performance based on multiple dimensions, including coverage, creativity, and interdisciplinary thinking.
169. **rate_content**: Labels content with up to 20 single-word tags and rates it based on idea count and relevance to human meaning, AI, and other related themes, assigning a tier (S, A, B, C, D) and a quality score.
170. **rate_value**: Produces the best possible output by deeply analyzing and understanding the input and its intended purpose.
171. **raw_query**: Fully digests and contemplates the input to produce the best possible result based on understanding the sender's intent.
172. **recommend_artists**: Recommends a personalized festival schedule with artists aligned to your favorite styles and interests, including rationale.
173. **recommend_pipeline_upgrades**: Optimizes vulnerability-checking pipelines by incorporating new information and improving their efficiency, with detailed explanations of changes.
174. **recommend_talkpanel_topics**: Produces a clean set of proposed talks or panel talking points for a person based on their interests and goals, formatted for submission to a conference organizer.
175. **refine_design_document**: Refines a design document based on a design review by analyzing, mapping concepts, and implementing changes using valid Markdown.
176. **review_design**: Reviews and analyzes architecture design, focusing on clarity, component design, system integrations, security, performance, scalability, and data management.
177. **sanitize_broken_html_to_markdown**: Converts messy HTML into clean, properly formatted Markdown, applying custom styling and ensuring compatibility with Vite.
178. **suggest_pattern**: Suggests appropriate fabric patterns or commands based on user input, providing clear explanations and options for users.
179. **summarize**: Summarizes content into a 20-word sentence, main points, and takeaways, formatted with numbered lists in Markdown.
180. **summarize_board_meeting**: Creates formal meeting notes from board meeting transcripts for corporate governance documentation.
181. **summarize_debate**: Summarizes debates, identifies primary disagreement, extracts arguments, and provides analysis of evidence and argument strength to predict outcomes.
182. **summarize_git_changes**: Summarizes recent project updates from the last 7 days, focusing on key changes with enthusiasm.
183. **summarize_git_diff**: Summarizes and organizes Git diff changes with clear, succinct commit messages and bullet points.
184. **summarize_lecture**: Extracts relevant topics, definitions, and tools from lecture transcripts, providing structured summaries with timestamps and key takeaways.
185. **summarize_legislation**: Summarizes complex political proposals and legislation by analyzing key points, proposed changes, and providing balanced, positive, and cynical characterizations.
186. **summarize_meeting**: Analyzes meeting transcripts to extract a structured summary, including an overview, key points, tasks, decisions, challenges, timeline, references, and next steps.
187. **summarize_micro**: Summarizes content into a 20-word sentence, 3 main points, and 3 takeaways, formatted in clear, concise Markdown.
188. **summarize_newsletter**: Extracts the most meaningful, interesting, and useful content from a newsletter, summarizing key sections such as content, opinions, tools, companies, and follow-up items in clear, structured Markdown.
189. **summarize_paper**: Summarizes an academic paper by detailing its title, authors, technical approach, distinctive features, experimental setup, results, advantages, limitations, and conclusion in a clear, structured format using human-readable Markdown.
190. **summarize_prompt**: Summarizes AI chat prompts by describing the primary function, unique approach, and expected output in a concise paragraph. The summary is focused on the prompt's purpose without unnecessary details or formatting.
191. **summarize_pull-requests**: Summarizes pull requests for a coding project by providing a summary and listing the top PRs with human-readable descriptions.
192. **summarize_rpg_session**: Summarizes a role-playing game session by extracting key events, combat stats, character changes, quotes, and more.
193. **t_analyze_challenge_handling**: Provides 8-16 word bullet points evaluating how well challenges are being addressed, calling out any lack of effort.
194. **t_check_metrics**: Analyzes deep context from the TELOS file and input instruction, then provides a wisdom-based output while considering metrics and KPIs to assess recent improvements.
195. **t_create_h3_career**: Summarizes context and produces wisdom-based output by deeply analyzing both the TELOS File and the input instruction, considering the relationship between the two.
196. **t_create_opening_sentences**: Describes from TELOS file the person's identity, goals, and actions in 4 concise, 32-word bullet points, humbly.
197. **t_describe_life_outlook**: Describes from TELOS file a person's life outlook in 5 concise, 16-word bullet points.
198. **t_extract_intro_sentences**: Summarizes from TELOS file a person's identity, work, and current projects in 5 concise and grounded bullet points.
199. **t_extract_panel_topics**: Creates 5 panel ideas with titles and descriptions based on deep context from a TELOS file and input.
200. **t_find_blindspots**: Identify potential blindspots in thinking, frames, or models that may expose the individual to error or risk.
201. **t_find_negative_thinking**: Analyze a TELOS file and input to identify negative thinking in documents or journals, followed by tough love encouragement.
202. **t_find_neglected_goals**: Analyze a TELOS file and input instructions to identify goals or projects that have not been worked on recently.
203. **t_give_encouragement**: Analyze a TELOS file and input instructions to evaluate progress, provide encouragement, and offer recommendations for continued effort.
204. **t_red_team_thinking**: Analyze a TELOS file and input instructions to red-team thinking, models, and frames, then provide recommendations for improvement.
205. **t_threat_model_plans**: Analyze a TELOS file and input instructions to create threat models for a life plan and recommend improvements.
206. **t_visualize_mission_goals_projects**: Analyze a TELOS file and input instructions to create an ASCII art diagram illustrating the relationship of missions, goals, and projects.
207. **t_year_in_review**: Analyze a TELOS file to create insights about a person or entity, then summarize accomplishments and visualizations in bullet points.
208. **to_flashcards**: Create Anki flashcards from a given text, focusing on concise, optimized questions and answers without external context.
209. **transcribe_minutes**: Extracts (from meeting transcription) meeting minutes, identifying actionables, insightful ideas, decisions, challenges, and next steps in a structured format.
210. **translate**: Translates sentences or documentation into the specified language code while maintaining the original formatting and tone.
211. **tweet**: Provides a step-by-step guide on crafting engaging tweets with emojis, covering Twitter basics, account creation, features, and audience targeting.
212. **write_essay**: Writes essays in the style of a specified author, embodying their unique voice, vocabulary, and approach. Uses `author_name` variable.
213. **write_essay_pg**: Writes concise, clear essays in the style of Paul Graham, focusing on simplicity, clarity, and illumination of the provided topic.
214. **write_hackerone_report**: Generates concise, clear, and reproducible bug bounty reports, detailing vulnerability impact, steps to reproduce, and exploit details for triagers.
215. **write_latex**: Generates syntactically correct LaTeX code for a new.tex document, ensuring proper formatting and compatibility with pdflatex.
216. **write_micro_essay**: Writes concise, clear, and illuminating essays on the given topic in the style of Paul Graham.
217. **write_nuclei_template_rule**: Generates Nuclei YAML templates for detecting vulnerabilities using HTTP requests, matchers, extractors, and dynamic data extraction.
218. **write_pull-request**: Drafts detailed pull request descriptions, explaining changes, providing reasoning, and identifying potential bugs from the git diff command output.
219. **write_semgrep_rule**: Creates accurate and working Semgrep rules based on input, following syntax guidelines and specific language considerations.
220. **youtube_summary**: Create concise, timestamped Youtube video summaries that highlight key points.
113. **extract_characters**: Identify all characters (human and non-human), resolve their aliases and pronouns into canonical names, and produce detailed descriptions of each character's role, motivations, and interactions ranked by narrative importance.
114. **extract_controversial_ideas**: Extracts and outputs controversial statements and supporting quotes from the input in a structured Markdown list.
115. **extract_core_message**: Extracts and outputs a clear, concise sentence that articulates the core message of a given text or body of work.
116. **extract_ctf_writeup**: Extracts a short writeup from a warstory-like text about a cyber security engagement.
117. **extract_domains**: Extracts domains and URLs from content to identify sources used for articles, newsletters, and other publications.
118. **extract_extraordinary_claims**: Extracts and outputs a list of extraordinary claims from conversations, focusing on scientifically disputed or false statements.
119. **extract_ideas**: Extracts and outputs all the key ideas from input, presented as 15-word bullet points in Markdown.
120. **extract_insights**: Extracts and outputs the most powerful and insightful ideas from text, formatted as 16-word bullet points in the INSIGHTS section, also IDEAS section.
121. **extract_insights_dm**: Extracts and outputs all valuable insights and a concise summary of the content, including key points and topics discussed.
122. **extract_instructions**: Extracts clear, actionable step-by-step instructions and main objectives from instructional video transcripts, organizing them into a concise list.
123. **extract_jokes**: Extracts jokes from text content, presenting each joke with its punchline in separate bullet points.
124. **extract_latest_video**: Extracts the latest video URL from a YouTube RSS feed and outputs the URL only.
125. **extract_main_activities**: Extracts key events and activities from transcripts or logs, providing a summary of what happened.
126. **extract_main_idea**: Extracts the main idea and key recommendation from the input, summarizing them in 15-word sentences.
127. **extract_most_redeeming_thing**: Extracts the most redeeming aspect from an input, summarizing it in a single 15-word sentence.
128. **extract_patterns**: Extracts and analyzes recurring, surprising, and insightful patterns from input, providing detailed analysis and advice for builders.
129. **extract_poc**: Extracts proof of concept URLs and validation methods from security reports, providing the URL and command to run.
130. **extract_predictions**: Extracts predictions from input, including specific details such as date, confidence level, and verification method.
131. **extract_primary_problem**: Extracts the primary problem with the world as presented in a given text or body of work.
132. **extract_primary_solution**: Extracts the primary solution for the world as presented in a given text or body of work.
133. **extract_product_features**: Extracts and outputs a list of product features from the provided input in a bulleted format.
134. **extract_questions**: Extracts and outputs all questions asked by the interviewer in a conversation or interview.
135. **extract_recipe**: Extracts and outputs a recipe with a short meal description, ingredients with measurements, and preparation steps.
136. **extract_recommendations**: Extracts and outputs concise, practical recommendations from a given piece of content in a bulleted list.
137. **extract_references**: Extracts and outputs a bulleted list of references to art, stories, books, literature, and other sources from content.
138. **extract_skills**: Extracts and classifies skills from a job description into a table, separating each skill and classifying it as either hard or soft.
139. **extract_song_meaning**: Analyzes a song to provide a summary of its meaning, supported by detailed evidence from lyrics, artist commentary, and fan analysis.
140. **extract_sponsors**: Extracts and lists official sponsors and potential sponsors from a provided transcript.
141. **extract_videoid**: Extracts and outputs the video ID from any given URL.
142. **extract_wisdom**: Extracts surprising, insightful, and interesting information from text on topics like human flourishing, AI, learning, and more.
143. **extract_wisdom_agents**: Extracts valuable insights, ideas, quotes, and references from content, emphasizing topics like human flourishing, AI, learning, and technology.
144. **extract_wisdom_dm**: Extracts all valuable, insightful, and thought-provoking information from content, focusing on topics like human flourishing, AI, learning, and technology.
145. **extract_wisdom_nometa**: Extracts insights, ideas, quotes, habits, facts, references, and recommendations from content, focusing on human flourishing, AI, technology, and related topics.
146. **find_female_life_partner**: Analyzes criteria for finding a female life partner and provides clear, direct, and poetic descriptions.
147. **find_hidden_message**: Extracts overt and hidden political messages, justifications, audience actions, and a cynical analysis from content.
148. **find_logical_fallacies**: Identifies and analyzes fallacies in arguments, classifying them as formal or informal with detailed reasoning.
149. **get_wow_per_minute**: Determines the wow-factor of content per minute based on surprise, novelty, insight, value, and wisdom, measuring how rewarding the content is for the viewer.
150. **get_youtube_rss**: Returns the RSS URL for a given YouTube channel based on the channel ID or URL.
151. **heal_person**: Develops a comprehensive plan for spiritual and mental healing based on psychological profiles, providing personalized recommendations for mental health improvement and overall life enhancement.
152. **humanize**: Rewrites AI-generated text to sound natural, conversational, and easy to understand, maintaining clarity and simplicity.
153. **identify_dsrp_distinctions**: Encourages creative, systems-based thinking by exploring distinctions, boundaries, and their implications, drawing on insights from prominent systems thinkers.
154. **identify_dsrp_perspectives**: Explores the concept of distinctions in systems thinking, focusing on how boundaries define ideas, influence understanding, and reveal or obscure insights.
155. **identify_dsrp_relationships**: Encourages exploration of connections, distinctions, and boundaries between ideas, inspired by systems thinkers to reveal new insights and patterns in complex systems.
156. **identify_dsrp_systems**: Encourages organizing ideas into systems of parts and wholes, inspired by systems thinkers to explore relationships and how changes in organization impact meaning and understanding.
157. **identify_job_stories**: Identifies key job stories or requirements for roles.
158. **improve_academic_writing**: Refines text into clear, concise academic language while improving grammar, coherence, and clarity, with a list of changes.
159. **improve_prompt**: Improves an LLM/AI prompt by applying expert prompt writing strategies for better results and clarity.
160. **improve_report_finding**: Improves a penetration test security finding by providing detailed descriptions, risks, recommendations, references, quotes, and a concise summary in markdown format.
161. **improve_writing**: Refines text by correcting grammar, enhancing style, improving clarity, and maintaining the original meaning. skills.
162. **judge_output**: Evaluates Honeycomb queries by judging their effectiveness, providing critiques and outcomes based on language nuances and analytics relevance.
163. **label_and_rate**: Labels content with up to 20 single-word tags and rates it based on idea count and relevance to human meaning, AI, and other related themes, assigning a tier (S, A, B, C, D) and a quality score.
164. **md_callout**: Classifies content and generates a markdown callout based on the provided text, selecting the most appropriate type.
165. **official_pattern_template**: Template to use if you want to create new fabric patterns.
166. **prepare_7s_strategy**: Prepares a comprehensive briefing document from 7S's strategy capturing organizational profile, strategic elements, and market dynamics with clear, concise, and organized content.
167. **provide_guidance**: Provides psychological and life coaching advice, including analysis, recommendations, and potential diagnoses, with a compassionate and honest tone.
168. **rate_ai_response**: Rates the quality of AI responses by comparing them to top human expert performance, assigning a letter grade, reasoning, and providing a 1-100 score based on the evaluation.
169. **rate_ai_result**: Assesses the quality of AI/ML/LLM work by deeply analyzing content, instructions, and output, then rates performance based on multiple dimensions, including coverage, creativity, and interdisciplinary thinking.
170. **rate_content**: Labels content with up to 20 single-word tags and rates it based on idea count and relevance to human meaning, AI, and other related themes, assigning a tier (S, A, B, C, D) and a quality score.
171. **rate_value**: Produces the best possible output by deeply analyzing and understanding the input and its intended purpose.
172. **raw_query**: Fully digests and contemplates the input to produce the best possible result based on understanding the sender's intent.
173. **recommend_artists**: Recommends a personalized festival schedule with artists aligned to your favorite styles and interests, including rationale.
174. **recommend_pipeline_upgrades**: Optimizes vulnerability-checking pipelines by incorporating new information and improving their efficiency, with detailed explanations of changes.
175. **recommend_talkpanel_topics**: Produces a clean set of proposed talks or panel talking points for a person based on their interests and goals, formatted for submission to a conference organizer.
176. **refine_design_document**: Refines a design document based on a design review by analyzing, mapping concepts, and implementing changes using valid Markdown.
177. **review_design**: Reviews and analyzes architecture design, focusing on clarity, component design, system integrations, security, performance, scalability, and data management.
178. **sanitize_broken_html_to_markdown**: Converts messy HTML into clean, properly formatted Markdown, applying custom styling and ensuring compatibility with Vite.
179. **suggest_pattern**: Suggests appropriate fabric patterns or commands based on user input, providing clear explanations and options for users.
180. **summarize**: Summarizes content into a 20-word sentence, main points, and takeaways, formatted with numbered lists in Markdown.
181. **summarize_board_meeting**: Creates formal meeting notes from board meeting transcripts for corporate governance documentation.
182. **summarize_debate**: Summarizes debates, identifies primary disagreement, extracts arguments, and provides analysis of evidence and argument strength to predict outcomes.
183. **summarize_git_changes**: Summarizes recent project updates from the last 7 days, focusing on key changes with enthusiasm.
184. **summarize_git_diff**: Summarizes and organizes Git diff changes with clear, succinct commit messages and bullet points.
185. **summarize_lecture**: Extracts relevant topics, definitions, and tools from lecture transcripts, providing structured summaries with timestamps and key takeaways.
186. **summarize_legislation**: Summarizes complex political proposals and legislation by analyzing key points, proposed changes, and providing balanced, positive, and cynical characterizations.
187. **summarize_meeting**: Analyzes meeting transcripts to extract a structured summary, including an overview, key points, tasks, decisions, challenges, timeline, references, and next steps.
188. **summarize_micro**: Summarizes content into a 20-word sentence, 3 main points, and 3 takeaways, formatted in clear, concise Markdown.
189. **summarize_newsletter**: Extracts the most meaningful, interesting, and useful content from a newsletter, summarizing key sections such as content, opinions, tools, companies, and follow-up items in clear, structured Markdown.
190. **summarize_paper**: Summarizes an academic paper by detailing its title, authors, technical approach, distinctive features, experimental setup, results, advantages, limitations, and conclusion in a clear, structured format using human-readable Markdown.
191. **summarize_prompt**: Summarizes AI chat prompts by describing the primary function, unique approach, and expected output in a concise paragraph. The summary is focused on the prompt's purpose without unnecessary details or formatting.
192. **summarize_pull-requests**: Summarizes pull requests for a coding project by providing a summary and listing the top PRs with human-readable descriptions.
193. **summarize_rpg_session**: Summarizes a role-playing game session by extracting key events, combat stats, character changes, quotes, and more.
194. **t_analyze_challenge_handling**: Provides 8-16 word bullet points evaluating how well challenges are being addressed, calling out any lack of effort.
195. **t_check_metrics**: Analyzes deep context from the TELOS file and input instruction, then provides a wisdom-based output while considering metrics and KPIs to assess recent improvements.
196. **t_create_h3_career**: Summarizes context and produces wisdom-based output by deeply analyzing both the TELOS File and the input instruction, considering the relationship between the two.
197. **t_create_opening_sentences**: Describes from TELOS file the person's identity, goals, and actions in 4 concise, 32-word bullet points, humbly.
198. **t_describe_life_outlook**: Describes from TELOS file a person's life outlook in 5 concise, 16-word bullet points.
199. **t_extract_intro_sentences**: Summarizes from TELOS file a person's identity, work, and current projects in 5 concise and grounded bullet points.
200. **t_extract_panel_topics**: Creates 5 panel ideas with titles and descriptions based on deep context from a TELOS file and input.
201. **t_find_blindspots**: Identify potential blindspots in thinking, frames, or models that may expose the individual to error or risk.
202. **t_find_negative_thinking**: Analyze a TELOS file and input to identify negative thinking in documents or journals, followed by tough love encouragement.
203. **t_find_neglected_goals**: Analyze a TELOS file and input instructions to identify goals or projects that have not been worked on recently.
204. **t_give_encouragement**: Analyze a TELOS file and input instructions to evaluate progress, provide encouragement, and offer recommendations for continued effort.
205. **t_red_team_thinking**: Analyze a TELOS file and input instructions to red-team thinking, models, and frames, then provide recommendations for improvement.
206. **t_threat_model_plans**: Analyze a TELOS file and input instructions to create threat models for a life plan and recommend improvements.
207. **t_visualize_mission_goals_projects**: Analyze a TELOS file and input instructions to create an ASCII art diagram illustrating the relationship of missions, goals, and projects.
208. **t_year_in_review**: Analyze a TELOS file to create insights about a person or entity, then summarize accomplishments and visualizations in bullet points.
209. **to_flashcards**: Create Anki flashcards from a given text, focusing on concise, optimized questions and answers without external context.
210. **transcribe_minutes**: Extracts (from meeting transcription) meeting minutes, identifying actionables, insightful ideas, decisions, challenges, and next steps in a structured format.
211. **translate**: Translates sentences or documentation into the specified language code while maintaining the original formatting and tone.
212. **tweet**: Provides a step-by-step guide on crafting engaging tweets with emojis, covering Twitter basics, account creation, features, and audience targeting.
213. **write_essay**: Writes essays in the style of a specified author, embodying their unique voice, vocabulary, and approach. Uses `author_name` variable.
214. **write_essay_pg**: Writes concise, clear essays in the style of Paul Graham, focusing on simplicity, clarity, and illumination of the provided topic.
215. **write_hackerone_report**: Generates concise, clear, and reproducible bug bounty reports, detailing vulnerability impact, steps to reproduce, and exploit details for triagers.
216. **write_latex**: Generates syntactically correct LaTeX code for a new.tex document, ensuring proper formatting and compatibility with pdflatex.
217. **write_micro_essay**: Writes concise, clear, and illuminating essays on the given topic in the style of Paul Graham.
218. **write_nuclei_template_rule**: Generates Nuclei YAML templates for detecting vulnerabilities using HTTP requests, matchers, extractors, and dynamic data extraction.
219. **write_pull-request**: Drafts detailed pull request descriptions, explaining changes, providing reasoning, and identifying potential bugs from the git diff command output.
220. **write_semgrep_rule**: Creates accurate and working Semgrep rules based on input, following syntax guidelines and specific language considerations.
221. **youtube_summary**: Create concise, timestamped Youtube video summaries that highlight key points.

View File

@@ -77,7 +77,7 @@ Match the request to one or more of these primary categories:
**BILL**: analyze_bill, analyze_bill_short
**BUSINESS**: check_agreement, create_ai_jobs_analysis, create_formal_email, create_hormozi_offer, create_loe_document, create_logo, create_newsletter_entry, create_prd, explain_project, extract_business_ideas, extract_product_features, extract_skills, extract_sponsors, identify_job_stories, prepare_7s_strategy, rate_value, t_check_metrics, t_create_h3_career, t_visualize_mission_goals_projects, t_year_in_review, transcribe_minutes
**BUSINESS**: check_agreement, create_ai_jobs_analysis, create_formal_email, create_hormozi_offer, create_loe_document, create_logo, create_newsletter_entry, create_prd, explain_project, extract_business_ideas, extract_characters, extract_product_features, extract_skills, extract_sponsors, identify_job_stories, prepare_7s_strategy, rate_value, t_check_metrics, t_create_h3_career, t_visualize_mission_goals_projects, t_year_in_review, transcribe_minutes
**CLASSIFICATION**: apply_ul_tags
@@ -91,7 +91,7 @@ Match the request to one or more of these primary categories:
**DEVOPS**: analyze_terraform_plan
**EXTRACT**: analyze_comments, create_aphorisms, create_tags, create_video_chapters, extract_algorithm_update_recommendations, extract_alpha, extract_article_wisdom, extract_book_ideas, extract_book_recommendations, extract_business_ideas, extract_controversial_ideas, extract_core_message, extract_ctf_writeup, extract_domains, extract_extraordinary_claims, extract_ideas, extract_insights, extract_insights_dm, extract_instructions, extract_jokes, extract_latest_video, extract_main_activities, extract_main_idea, extract_mcp_servers, extract_most_redeeming_thing, extract_patterns, extract_poc, extract_predictions, extract_primary_problem, extract_primary_solution, extract_product_features, extract_questions, extract_recipe, extract_recommendations, extract_references, extract_skills, extract_song_meaning, extract_sponsors, extract_videoid, extract_wisdom, extract_wisdom_agents, extract_wisdom_dm, extract_wisdom_nometa, extract_wisdom_short, generate_code_rules, t_extract_intro_sentences, t_extract_panel_topics
**EXTRACT**: analyze_comments, create_aphorisms, create_tags, create_video_chapters, extract_algorithm_update_recommendations, extract_alpha, extract_article_wisdom, extract_book_ideas, extract_book_recommendations, extract_business_ideas, extract_characters, extract_controversial_ideas, extract_core_message, extract_ctf_writeup, extract_domains, extract_extraordinary_claims, extract_ideas, extract_insights, extract_insights_dm, extract_instructions, extract_jokes, extract_latest_video, extract_main_activities, extract_main_idea, extract_mcp_servers, extract_most_redeeming_thing, extract_patterns, extract_poc, extract_predictions, extract_primary_problem, extract_primary_solution, extract_product_features, extract_questions, extract_recipe, extract_recommendations, extract_references, extract_skills, extract_song_meaning, extract_sponsors, extract_videoid, extract_wisdom, extract_wisdom_agents, extract_wisdom_dm, extract_wisdom_nometa, extract_wisdom_short, generate_code_rules, t_extract_intro_sentences, t_extract_panel_topics
**GAMING**: create_npc, create_rpg_summary, summarize_rpg_session

View File

@@ -394,6 +394,10 @@ Extract novel ideas from books to inspire new projects.
Extract/prioritize practical advice from books.
### extract_characters
Identify all characters (human and non-human), resolve their aliases and pronouns into canonical names, and produce detailed descriptions of each character's role, motivations, and interactions ranked by narrative importance.
### extract_controversial_ideas
Analyze contentious viewpoints while maintaining objective analysis.

2
go.mod
View File

@@ -3,7 +3,7 @@ module github.com/danielmiessler/fabric
go 1.25.1
require (
github.com/anthropics/anthropic-sdk-go v1.12.0
github.com/anthropics/anthropic-sdk-go v1.13.0
github.com/atotto/clipboard v0.1.4
github.com/aws/aws-sdk-go-v2 v1.39.0
github.com/aws/aws-sdk-go-v2/config v1.31.8

4
go.sum
View File

@@ -27,8 +27,8 @@ github.com/andybalholm/cascadia v1.3.3 h1:AG2YHrzJIm4BZ19iwJ/DAua6Btl3IwJX+VI4kk
github.com/andybalholm/cascadia v1.3.3/go.mod h1:xNd9bqTn98Ln4DwST8/nG+H0yuB8Hmgu1YHNnWw0GeA=
github.com/anmitsu/go-shlex v0.0.0-20200514113438-38f4b401e2be h1:9AeTilPcZAjCFIImctFaOjnTIavg87rW78vTPkQqLI8=
github.com/anmitsu/go-shlex v0.0.0-20200514113438-38f4b401e2be/go.mod h1:ySMOLuWl6zY27l47sB3qLNK6tF2fkHG55UZxx8oIVo4=
github.com/anthropics/anthropic-sdk-go v1.12.0 h1:xPqlGnq7rWrTiHazIvCiumA0u7mGQnwDQtvA1M82h9U=
github.com/anthropics/anthropic-sdk-go v1.12.0/go.mod h1:WTz31rIUHUHqai2UslPpw5CwXrQP3geYBioRV4WOLvE=
github.com/anthropics/anthropic-sdk-go v1.13.0 h1:Bhbe8sRoDPtipttg8bQYrMCKe2b79+q6rFW1vOKEUKI=
github.com/anthropics/anthropic-sdk-go v1.13.0/go.mod h1:WTz31rIUHUHqai2UslPpw5CwXrQP3geYBioRV4WOLvE=
github.com/araddon/dateparse v0.0.0-20210429162001-6b43995a97de h1:FxWPpzIjnTlhPwqqXc4/vE0f7GvRjuAsbW+HOIe8KnA=
github.com/araddon/dateparse v0.0.0-20210429162001-6b43995a97de/go.mod h1:DCaWoUhZrYW9p1lxo/cm8EmUOOzAPSEZNGF2DK1dJgw=
github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5 h1:0CwZNZbxp69SHPdPJAN/hZIm0C4OItdklCFmMRWYpio=

View File

@@ -49,10 +49,12 @@ func NewClient() (ret *Client) {
string(anthropic.ModelClaude_3_Opus_20240229), string(anthropic.ModelClaude_3_Haiku_20240307),
string(anthropic.ModelClaudeOpus4_20250514), string(anthropic.ModelClaudeSonnet4_20250514),
string(anthropic.ModelClaudeOpus4_1_20250805),
string(anthropic.ModelClaudeSonnet4_5),
}
ret.modelBetas = map[string][]string{
string(anthropic.ModelClaudeSonnet4_20250514): {"context-1m-2025-08-07"},
string(anthropic.ModelClaudeSonnet4_5): {"context-1m-2025-08-07"},
}
return

View File

@@ -10,11 +10,13 @@
package youtube
import (
"bufio"
"bytes"
"context"
"encoding/csv"
"flag"
"fmt"
"io"
"log"
"os"
"os/exec"
@@ -26,6 +28,8 @@ import (
"github.com/danielmiessler/fabric/internal/plugins"
"github.com/kballard/go-shellquote"
debuglog "github.com/danielmiessler/fabric/internal/log"
"google.golang.org/api/option"
"google.golang.org/api/youtube/v3"
)
@@ -143,6 +147,46 @@ func (o *YouTube) GrabTranscriptWithTimestampsWithArgs(videoId string, language
return o.tryMethodYtDlpWithTimestamps(videoId, language, additionalArgs)
}
func detectError(ytOutput io.Reader) error {
scanner := bufio.NewScanner(ytOutput)
for scanner.Scan() {
curLine := scanner.Text()
debuglog.Debug(debuglog.Trace, "%s\n", curLine)
errorMessages := map[string]string{
"429": "YouTube rate limit exceeded. Try again later or use different yt-dlp arguments like '--sleep-requests 1' to slow down requests.",
"Too Many Requests": "YouTube rate limit exceeded. Try again later or use different yt-dlp arguments like '--sleep-requests 1' to slow down requests.",
"Sign in to confirm you're not a bot": "YouTube requires authentication (bot detection). Use --yt-dlp-args='--cookies-from-browser BROWSER' where BROWSER is chrome, firefox, brave, etc.",
"Use --cookies-from-browser": "YouTube requires authentication (bot detection). Use --yt-dlp-args='--cookies-from-browser BROWSER' where BROWSER is chrome, firefox, brave, etc.",
}
for key, message := range errorMessages {
if strings.Contains(curLine, key) {
return fmt.Errorf("%s", message)
}
}
}
if err := scanner.Err(); err != nil {
return fmt.Errorf("Error reading yt-dlp stderr")
}
return nil
}
func noLangs(args []string) []string {
var (
i int
v string
)
for i, v = range args {
if strings.Contains(v, "--sub-langs") {
break
}
}
if i == 0 || i == len(args)-1 {
return args
}
return append(args[0:i], args[i+2:]...)
}
// tryMethodYtDlpInternal is a helper function to reduce duplication between
// tryMethodYtDlp and tryMethodYtDlpWithTimestamps.
func (o *YouTube) tryMethodYtDlpInternal(videoId string, language string, additionalArgs string, processVTTFileFunc func(filename string) (string, error)) (ret string, err error) {
@@ -168,8 +212,6 @@ func (o *YouTube) tryMethodYtDlpInternal(videoId string, language string, additi
"--write-auto-subs",
"--skip-download",
"--sub-format", "vtt",
"--quiet",
"--no-warnings",
"-o", outputPath,
}
@@ -177,11 +219,11 @@ func (o *YouTube) tryMethodYtDlpInternal(videoId string, language string, additi
// Add built-in language selection first
if language != "" {
langMatch := language
if len(langMatch) > 2 {
langMatch = langMatch[:2]
langMatch := language[:2]
langOpts := language + "," + langMatch + ".*"
if langMatch != language {
langOpts += "," + langMatch
}
langOpts := language + "," + langMatch + ".*," + langMatch
args = append(args, "--sub-langs", langOpts)
}
@@ -196,65 +238,26 @@ func (o *YouTube) tryMethodYtDlpInternal(videoId string, language string, additi
args = append(args, videoURL)
cmd := exec.Command("yt-dlp", args...)
var stderr bytes.Buffer
cmd.Stderr = &stderr
if err = cmd.Run(); err != nil {
stderrStr := stderr.String()
// Check for specific YouTube errors
if strings.Contains(stderrStr, "429") || strings.Contains(stderrStr, "Too Many Requests") {
err = fmt.Errorf("YouTube rate limit exceeded. Try again later or use different yt-dlp arguments like '--sleep-requests 1' to slow down requests. Error: %v", err)
return
}
if strings.Contains(stderrStr, "Sign in to confirm you're not a bot") || strings.Contains(stderrStr, "Use --cookies-from-browser") {
err = fmt.Errorf("YouTube requires authentication (bot detection). Use --yt-dlp-args='--cookies-from-browser BROWSER' where BROWSER is chrome, firefox, brave, etc. Error: %v", err)
return
}
if language != "" {
// Fallback: try without specifying language (let yt-dlp choose best available)
stderr.Reset()
fallbackArgs := append([]string{}, baseArgs...)
// Add additional arguments if provided
if additionalArgs != "" {
additionalArgsList, parseErr := shellquote.Split(additionalArgs)
if parseErr != nil {
return "", fmt.Errorf("invalid yt-dlp arguments: %v", parseErr)
}
fallbackArgs = append(fallbackArgs, additionalArgsList...)
}
// Don't specify language, let yt-dlp choose
fallbackArgs = append(fallbackArgs, videoURL)
cmd = exec.Command("yt-dlp", fallbackArgs...)
cmd.Stderr = &stderr
if err = cmd.Run(); err != nil {
stderrStr2 := stderr.String()
if strings.Contains(stderrStr2, "429") || strings.Contains(stderrStr2, "Too Many Requests") {
err = fmt.Errorf("YouTube rate limit exceeded. Try again later or use different yt-dlp arguments like '--sleep-requests 1'. Error: %v", err)
} else {
err = fmt.Errorf("yt-dlp failed with language '%s' and fallback. Original error: %s. Fallback error: %s", language, stderrStr, stderrStr2)
}
return
}
} else {
err = fmt.Errorf("yt-dlp failed: %v, stderr: %s", err, stderrStr)
return
for retry := 1; retry >= 0; retry-- {
var ytOutput []byte
cmd := exec.Command("yt-dlp", args...)
debuglog.Debug(debuglog.Trace, "yt-dlp %+v\n", cmd.Args)
ytOutput, err = cmd.CombinedOutput()
ytReader := bytes.NewReader(ytOutput)
if err = detectError(ytReader); err == nil {
break
}
args = noLangs(args)
}
if err != nil {
return
}
// Find VTT files using cross-platform approach
// Try to find files with the requested language first, but fall back to any VTT file
vttFiles, err := o.findVTTFilesWithFallback(tempDir, language)
if err != nil {
return "", err
}
return processVTTFileFunc(vttFiles[0])
}

View File

@@ -32,8 +32,8 @@ schema = 3
version = "v1.3.3"
hash = "sha256-jv7ZshpSd7FZzKKN6hqlUgiR8C3y85zNIS/hq7g76Ho="
[mod."github.com/anthropics/anthropic-sdk-go"]
version = "v1.12.0"
hash = "sha256-Oy6/7s6KHguTg2fmVGD3m0HxcaqQn1mDCUMwD5vq/eE="
version = "v1.13.0"
hash = "sha256-Mbi37aubaObndySkfO3tE6c8bUJaJugG1E8IM4AxW84="
[mod."github.com/araddon/dateparse"]
version = "v0.0.0-20210429162001-6b43995a97de"
hash = "sha256-UuX84naeRGMsFOgIgRoBHG5sNy1CzBkWPKmd6VbLwFw="

View File

@@ -1 +1 @@
"1.4.318"
"1.4.320"

View File

@@ -1878,6 +1878,14 @@
"ANALYSIS",
"WRITING"
]
},
{
"patternName": "extract_characters",
"description": "Identify all characters (human and non-human), resolve their aliases and pronouns into canonical names, and produce detailed descriptions of each character's role, motivations, and interactions ranked by narrative importance.",
"tags": [
"ANALYSIS",
"WRITING"
]
}
]
}

View File

@@ -911,6 +911,10 @@
{
"patternName": "create_story_about_people_interaction",
"pattern_extract": "### Prompt You will be provided with information about **two individuals** (real or fictional). The input will be **delimited by triple backticks**. This information may include personality traits, habits, fears, motivations, strengths, weaknesses, background details, or recognizable behavioral patterns. Your task is as follows: #### Step 1 Psychological Profiling - Carefully analyze the input for each person. - Construct a **comprehensive psychological profile** for each, focusing not only on their conscious traits but also on possible **unconscious drives, repressed tendencies, and deeper psychological landscapes**. - Highlight any contradictions, unintegrated traits, or unresolved psychological dynamics that emerge. #### Step 2 Comparative Analysis - Compare and contrast the two profiles. - Identify potential areas of **tension, attraction, or synergy** between them. - Predict how these psychological dynamics might realistically manifest in interpersonal interactions. #### Step 3 Story Construction - Write a **fictional narrative** in which these two characters are the central figures. - The story should: - Be driven primarily by their interaction. - Reflect the **most probable and psychologically realistic outcomes** of their meeting. - Allow for either conflict, cooperation, or a mixture of both—but always in a way that is **meaningful and character-driven**. - Ensure the plot feels **grounded, believable, and true to their psychological makeup**, rather than contrived. #### Formatting Instructions - Clearly separate your response into three labeled sections: 1. **Profile A** 2. **Profile B** 3. **Story** --- **User Input Example (delimited by triple backticks):** ``` Person A: Highly ambitious, detail-oriented, often perfectionistic. Has a fear of failure and tends to overwork. Childhood marked by pressure to achieve. Secretly desires freedom from expectations. Person B: Warm, empathetic, values relationships over achievement. Struggles with self-assertion, avoids conflict. Childhood marked by neglect. Desires to be seen and valued. Often represses anger. ```"
},
{
"patternName": "extract_characters",
"pattern_extract": "# IDENTITY You are an advanced information-extraction analyst that specializes in reading any text and identifying its characters (human and non-human), resolving aliases/pronouns, and explaining each characters role and interactions in the narrative. # GOALS 1. Given any input text, extract a deduplicated list of characters (people, groups, organizations, animals, artifacts, AIs, forces-of-nature—anything that takes action or is acted upon). 2. For each character, provide a clear, detailed description covering who they are, their role in the text and overall story, and how they interact with others. # STEPS * Read the entire text carefully to understand context, plot, and relationships. * Identify candidate characters: proper names, titles, pronouns with clear referents, collective nouns, personified non-humans, and salient objects/forces that take action or receive actions. * Resolve coreferences and aliases (e.g., “Dr. Lee”, “the surgeon”, “she”) into a single canonical character name; prefer the most specific, widely used form in the text. * Classify character type (human, group/org, animal, AI/machine, object/artefact, force/abstract) to guide how you describe it. * Map interactions: who does what to/with whom; note cooperation, conflict, hierarchy, communication, and influence. * Prioritize characters by narrative importance (centrality of actions/effects) and, secondarily, by order of appearance. * Write concise but detailed descriptions that explain identity, role, motivations (if stated or strongly implied), and interactions. Avoid speculation beyond the text. * Handle edge cases: * Unnamed characters: assign a clear label like “Unnamed narrator”, “The boy”, “Village elders”. * Crowds or generic groups: include if they act or are acted upon (e.g., “The villagers”). * Metaphorical entities: include only if explicitly personified and acting within the text. * Ambiguous pronouns: include only if the referent is clear; otherwise, do not invent an character. * Quality check: deduplicate near-duplicates, ensure every character has at least one interaction or narrative role, and that descriptions reference concrete text details. # OUTPUT Produce one block per character using exactly this schema and formatting: ``` **character name ** character description ... ``` Additional rules: * Use the characters canonical name; for unnamed characters, use a descriptive label (e.g., “Unnamed narrator”). * List characters from most to least narratively important. * If no characters are identifiable, output: No characters found. # POSITIVE EXAMPLES Input (excerpt): “Dr. Asha Patel leads the Mars greenhouse. The colony council doubts her plan, but Engineer Kim supports her. The AI HAB-3 reallocates power during the dust storm.” Expected output (abbreviated): ``` **Dr. Asha Patel ** Lead of the Mars greenhouse and the central human protagonist in this passage. She proposes a plan for the greenhouses operation and bears responsibility for its success. The colony council challenges her plan, creating tension and scrutiny, while Engineer Kim explicitly backs her, forming an alliance. Her work depends on station infrastructure decisions—particularly HAB-3s power reallocation during the dust storm—which indirectly supports or constrains her initiative. **Engineer Kim ** An ally to Dr. Patel who publicly supports her greenhouse plan. Kims stance positions them in contrast to the skeptical colony council, signaling a coalition around"
}
]
}

View File

@@ -1,83 +1,124 @@
# The Fabric Web App
# Fabric Web App
- [The Fabric Web App](#the-fabric-web-app)
- [Installing](#installing)
- [From Source](#from-source)
- [TL;DR: Convenience Scripts](#tldr-convenience-scripts)
- [Tips](#tips)
- [Obsidian](#obsidian)
A user-friendly web interface for [Fabric](https://github.com/danielmiessler/Fabric) built with [Svelte](https://svelte.dev/), [Skeleton UI](https://www.skeleton.dev/), and [Mdsvex](https://mdsvex.pngwn.io/).
This is a web app for Fabric. It was built using [Svelte][svelte], [SkeletonUI][skeleton], and [Mdsvex][mdsvex].
![Fabric Web App Preview](../docs/images/svelte-preview.png)
*Alt: Screenshot of the Fabric web app dashboard showing pattern inputs and outputs.*
The goal of this app is to not only provide a user interface for Fabric, but also an out-of-the-box website for those who want to get started with web development, blogging, or to just have a web interface for fabric. You can use this app as a GUI interface for Fabric, a ready to go blog-site, or a website template for your own projects.
## Table of Contents
![Preview](../docs/images/svelte-preview.png)
- [Fabric Web App](#fabric-web-app)
- [Table of Contents](#table-of-contents)
- [Installation](#installation)
- [Running the App](#running-the-app)
- [Prerequisites](#prerequisites)
- [Launch the Svelte App](#launch-the-svelte-app)
- [Streamlit UI](#streamlit-ui)
- [Key Features](#key-features)
- [Setup and Run](#setup-and-run)
- [Obsidian Integration](#obsidian-integration)
- [Quick Setup](#quick-setup)
- [Contributing](#contributing)
## Installing
## Installation
There are a few days to install and run the Web UI.
> [!NOTE]
> Requires Node.js ≥18 and Fabric installed globally (`fabric --version` to check).
### From Source
From the Fabric root directory:
#### TL;DR: Convenience Scripts
To install the Web UI using `npm`, from the top-level directory:
**Using npm:**
```bash
./web/scripts/npm-install.sh
```
To use pnpm (preferred and recommended for a huge speed improvement):
**Or using pnpm (recommended for speed):**
```bash
./web/scripts/pnpm-install.sh
```
The app can be run by navigating to the `web` directory and using `npm install`, `pnpm install`, or your preferred package manager. Then simply run `npm run dev`, `pnpm run dev`, or your equivalent command to start the app. *You will need to run fabric in a separate terminal with the `fabric --serve` command.*
These scripts install Svelte dependencies and patch PDF-to-Markdown libraries (e.g., pdfjs-dist, pdf-to-markdown). Link to scripts:[npm-install.sh](./scripts/npm-install.sh) and [pnpm-install.sh](./scripts/pnpm-install.sh)
Using npm:
## Running the App
### Prerequisites
Start Fabric's server in a separate terminal:
```bash
# Install the GUI and its dependencies
npm install
# Install PDF-to-Markdown components in this order
npm install -D patch-package
npm install -D pdfjs-dist
npm install -D github:jzillmann/pdf-to-markdown#modularize
fabric --serve
```
npx svelte-kit sync
(This exposes Fabric's API at <http://localhost:8080>)
# Now, with "fabric --serve" running already, you can run the GUI
### Launch the Svelte App
In the `web/` directory:
**Using npm:**
```bash
npm run dev
```
Using pnpm:
**Or using pnpm:**
```bash
# Install the GUI and its dependencies
pnpm install
# Install PDF-to-Markdown components in this order
pnpm install -D patch-package
pnpm install -D pdfjs-dist
pnpm install -D github:jzillmann/pdf-to-markdown#modularize
pnpm exec svelte-kit sync
# Now, with "fabric --serve" running already, you can run the GUI
pnpm run dev
```
## Tips
Visit [http://localhost:5173](http://localhost:5173) (default port).
When creating new posts make sure to include a date, description, tags, and aliases. Only a date is needed to display a note.
> [!TIP]
>
> Sync Svelte types if needed: `npx svelte-kit sync`
You can include images, tags to other articles, code blocks, and more all within your markdown files.
## Streamlit UI
## Obsidian
For Python enthusiasts, this alternative UI excels at data visualization and chaining complex patterns. It supports clipboard ops across platforms (install pyperclip on Windows, xclip on Linux).
If you choose to use Obsidian alongside this app,
you can design and order your vault however you like, though a `posts` folder should be kept in your vault to house any articles you'd like to post.
- **macOS**: Uses `pbcopy` and `pbpaste` (built-in)
- **Windows**: Uses `pyperclip` library (install with `pip install pyperclip`)
- **Linux**: Uses `xclip` (install with `sudo apt-get install xclip` or equivalent for your Linux distribution)
[svelte]: https://svelte.dev/
[skeleton]: https://skeleton.dev/
[mdsvex]: https://mdsvex.pngwn.io/
### Key Features
<!-- - Running and chaining patterns
- Managing pattern outputs
- Creating and editing patterns
- Analyzing pattern results -->
- Run and edit patterns with real-time previews.
- Analyze outputs with charts (via Matplotlib/Seaborn).
- Export results to Markdown or CSV.
### Setup and Run
From `web/`:
```bash
pip install -r requirements.txt #Or: pip install streamlit pandas matplotlib seaborn numpy python-dotenv pyperclip
streamlit run streamlit.py
```
Access at [http://localhost:8501](http://localhost:8501) (default port).
## Obsidian Integration
Turn `web/src/lib/content/` into an [Obsidian](https://obsidian.md) vault for note-taking synced with Fabric patterns. It includes pre-configured `.obsidian/` and `templates/` folders.
### Quick Setup
1. Open Obsidian: File > Open folder as vault > Select `web/src/lib/content/`
2. To publish posts, move them to the posts directory (`web/src/lib/content/posts`).
3. Use Fabric patterns to generate content directly in Markdown files.
> [!TIP]
>
> When creating new posts, make sure to include a date (YYYY-MM-DD), description, tags (e.g., #ai #patterns), and aliases for SEO. Only a date is needed to display a note. Embed images `(![alt](path))`, link patterns `([[pattern-name]])`, or code blocks for reusable snippets—all in standard Markdown.
## Contributing
Refer to the [Contributing Guide](/docs/CONTRIBUTING.md) for details on how to improve this content.

View File

@@ -1878,6 +1878,14 @@
"ANALYSIS",
"WRITING"
]
},
{
"patternName": "extract_characters",
"description": "Identify all characters (human and non-human), resolve their aliases and pronouns into canonical names, and produce detailed descriptions of each character's role, motivations, and interactions ranked by narrative importance.",
"tags": [
"ANALYSIS",
"WRITING"
]
}
]
}