-
Notifications
You must be signed in to change notification settings - Fork 2.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Feature request]: Proposal for Pattern Naming Convention with Distinctive Action Verbs #1160
Comments
awesome idea! |
I also like the idea of more structure and rigor in categorizing patterns so it is easier to understand what they do. Taxonomies are always fun to define and get people to agree upon, though, so this might need some discussion and experimentation. The main benefit I can think of is to make it possible to have something more manageable than I recently came upon a different prompt organization method that I could envision pre-configuring to use specific LLMs per prompt type. The prompt types are:
Those seem to encompass the original proposed verbs and not require a As to this other proposed method of organizing patterns, let me use $ fabric -y https://youtu.be/pytSbBRoFw8?si=4pLZWKiGBeMkZMUo | fabric -p extract_wisdom SUMMARYIndie Dev Dan discusses a framework for categorizing large language model use cases into six types: expansion, compression, conversion, seeker, action, and reasoning. IDEAS:
INSIGHTS:
QUOTES:
HABITS:
FACTS:
REFERENCES:
ONE-SENTENCE TAKEAWAY:Categorizing prompts into six types—expansion, compression, conversion, seeker, action, and reasoning—simplifies AI development and agent design. RECOMMENDATIONS:
|
What do you need?
Thank you so much for all the amazing work you've put into this project! It's been incredibly valuable, and I'd like to propose an enhancement to the naming conventions to make the usage of patterns even more intuitive and consistent.
This is an initial suggestion for refining the naming conventions within the pattern catalog, incorporating distinctive action verbs and decision trees to assist with pattern naming. I'm eager to discuss and refine it further with the community.
Why This Improvement is Needed:
The current variety of action verbs and inconsistent pattern names can sometimes make it challenging to quickly understand the purpose and expected output of various patterns. This can create some friction for new users and even for experienced contributors trying to navigate the rapidly expanding catalog of available and user-contributed patterns efficiently.
Proposed New Naming Convention:
Three-Part Structure: Adopt a consistent naming structure of
action_verb
,subject
,object
. This structure clearly indicates the action being performed, the main focus, and the specific item being acted upon.action_verb
+subject
+object
action_verb
: The operation or task being performed (e.g.,analyze
,create
,evaluate
).subject
: The primary focus or entity involved in the action (e.g.,security
,design
,candidate
).object
: The specific aspect or item the action is performed upon (e.g.,logs
,document
,performance
).Focused Set of Action Verbs with Synonyms:
Below is the list of core action verbs, each accompanied by synonyms to assist contributors in selecting the appropriate verb.
1.
analyze_
analyze_market_trends
analyze_user_feedback
2.
evaluate_
evaluate_project_risks
evaluate_training_effectiveness
3.
extract_
extract_customer_requirements
extract_key_points
4.
create_
create_user_manual
create_marketing_plan
5.
optimize_
optimize_database_queries
optimize_ui_design
6.
explain_
explain_regulatory_compliance
explain_api_endpoints
7.
guide_
guide_product_setup
guide_interview_preparation
Special Cases:
misc_
: For miscellaneous tasks that don't fit other categories._official_
andtest_
: Reserved for internal, system-level patterns or testing purposes.Benefits of Naming Convention:
Suggested Action Verbs with Examples and Decision Trees:
Below are the proposed action verbs, their descriptions, use cases, examples, and decision trees to help decide when to use each verb.
1.
analyze_
Description: Use
analyze_
to break down information into parts to understand patterns, insights, or key components.Use Case: Suitable for examining data, text, or other inputs to derive understanding, insights, or to perform diagnostics. The focus is on understanding the "how" and "why" behind the data without necessarily making judgments about its quality.
Examples:
analyze_logs
: Break down log files to identify patterns or anomalies.analyze_paper
: Dissect a research paper to understand its methodology and findings.analyze_thinker_work
: Examine the teachings of a philosopher to understand their ideas.Decision Tree:
Does the task involve understanding or interpreting data or content?
analyze_
.Is the primary goal to assess quality or make judgments?
evaluate_
.analyze_
.Patterns to Merge:
capture_thinkers_work
>>analyze_thinker_work
compare_and_contrast
>>analyze_comparison
find_logical_fallacies
>>analyze_logical_fallacies
identify_dsrp_distinctions
>>analyze_dsrp_distinctions
identify_dsrp_perspectives
>>analyze_dsrp_perspectives
identify_dsrp_relationships
>>analyze_dsrp_relationships
identify_dsrp_systems
>>analyze_dsrp_systems
identify_job_stories
>>analyze_job_stories
solve_with_cot
>>analyze_with_cot
2.
evaluate_
Description: Use
evaluate_
to assess the quality, effectiveness, or value of something based on set criteria or standards.Use Case: Ideal for tasks that involve judgment or rating against a benchmark, often to assess compliance, quality, or suitability. The focus is on making judgments about the "goodness," "suitability," or "performance" of the subject.
Examples:
evaluate_code_quality
: Assess code for adherence to best practices.evaluate_candidates
: Determine suitability of candidates for a role.evaluate_ai_response
: Judge the quality of an AI-generated response.Decision Tree:
Is the primary goal to judge or assess quality, effectiveness, or value?
evaluate_
.Does the task involve understanding or interpreting data without making judgments?
analyze_
.evaluate_
.Patterns to Merge:
analyze_candidates
>>evaluate_candidates
(determine suitability for a position or role)analyze_product_feedback
>>evaluate_product_feedback
(assess the quality or impact of feedback)analyze_interviewer_techniques
>>evaluate_interviewer_techniques
(assess the effectiveness of interview methods)label_and_rate
>>evaluate_labels
(assigning scores or labels implies evaluation)review_design
>>evaluate_design
(focus on assessing the quality or appropriateness of the design)rate_ai_response
>>evaluate_ai_response
(to assess the quality of the AI response)rate_ai_result
>>evaluate_ai_result
(to determine the quality or correctness of the AI-generated result)rate_content
>>evaluate_content
(to judge the quality of content)rate_value
>>evaluate_value
(to determine the value of something)get_wow_per_minute
>>evaluate_wow_per_minute
(assigning a score for the "wow factor")ai
>>evaluate_ai_response
3.
extract_
Description: Use
extract_
to retrieve specific information, insights, or elements from a larger body of data or content.Use Case: Best for tasks involving targeted retrieval of specific information. The focus is on isolating relevant elements from a larger dataset.
Examples:
extract_core_message
: Retrieve the main point from a text.extract_recommendations
: Pull out actionable advice from a report.extract_hidden_messages
: Find hidden messages within content.Decision Tree:
Does the task involve retrieving specific information from a larger dataset?
extract_
.Is the task about generating new content from scratch?
create_
.extract_
.Patterns to Merge:
get_youtube_rss
>>extract_youtube_rss
export_data_as_csv
>>extract_data_as_csv
find_hidden_message
>>extract_hidden_messages
4.
create_
Description: Use
create_
to generate new content or outputs from scratch.Use Case: Ideal for tasks that involve constructing something new, such as documents, diagrams, visualizations, or narratives.
Examples:
create_summary
: Generate a summary of a document.create_design_document
: Develop a new design document.create_logo
: Design a new company logo.Decision Tree:
Is the task about generating new content from scratch?
create_
.Is the task about improving existing content?
optimize_
.create_
.Patterns to Merge:
agility_story
>>create_agility_story
write_agile_userstory
>>create_agile_userstory
write_essay
>>create_essay
write_hackerone_report
>>create_hackerone_report
write_latex
>>create_latex
write_micro_essay
>>create_micro_essay
write_nuclei_template_rule
>>create_nuclei_template_rule
write_pull-request
>>create_pull_request_summary
write_semgrep_rule
>>create_semgrep_rule
answer_interview_question
>>create_interview_responses
prepare_7s_strategy
>>create_7s_strategy
raw_query
>>create_raw_query
recommend_artists
>>create_artist_recommendation
recommend_pipeline_upgrades
>>create_pipeline_upgrade_recommendations
recommend_talkpanel_topics
>>create_talkpanel_topics
refine_design_document
>>create_design_document_refinement
suggest_pattern
>>create_pattern_suggestion
summarize_debate
>>create_debate_summary
summarize_git_changes
>>create_git_changes_summary
summarize_git_diff
>>create_git_diff_summary
summarize_lecture
>>create_lecture_summary
summarize_legislation
>>create_legislation_summary
summarize_meeting
>>create_meeting_summary
summarize_newsletter
>>create_newsletter_summary
summarize_paper
>>create_paper_summary
summarize_prompt
>>create_prompt_summary
summarize_pull-requests
>>create_pull_requests_summary
summarize_rpg_session
>>create_rpg_session_summary
transcribe_minutes
>>create_minutes_transcription
5.
optimize_
Description: Use
optimize_
to improve efficiency, effectiveness, or performance of existing content or solutions. This conveys an iterative improvement process.Use Case: Best for tasks that focus on refining or enhancing existing content to achieve better outcomes.
Examples:
optimize_writing
: Improve the clarity and style of existing text.optimize_algorithm_performance
: Enhance the efficiency of an algorithm.Decision Tree:
Is the task about improving existing content or solutions?
optimize_
.Is the task about creating something new from scratch?
create_
.optimize_
.Patterns to Merge:
improve_academic_writing
>>optimize_academic_writing
improve_prompt
>>optimize_prompt
improve_report_finding
>>optimize_report_finding
improve_writing
>>optimize_writing
6.
explain_
Description: Use
explain_
to clarify, provide detailed descriptions, or make a concept or subject easier to understand.Use Case: Ideal for tasks where users need a detailed explanation or walkthrough of a complex topic.
Examples:
explain_code
: Provide a detailed explanation of code.explain_project
: Summarize and clarify project documentation.explain_terms
: Define advanced terms.Decision Tree:
Is the task about clarifying or explaining a concept or subject?
explain_
.Is the task about generating new content or analyzing data?
create_
oranalyze_
.explain_
.Patterns to Merge:
7.
guide_
Description: Use
guide_
for actions that involve interactive support or leading through a process, often in a conversational manner.Use Case: Best for conversational flows, guidance interactions, or Q&A prompts where the system responds in a human-like, interactive way.
Examples:
guide_socratic_dialog
: Engage in a Socratic dialogue.guide_secure_design_questions
: Lead through security-focused design questions.guide_general_advice
: Provide personalized guidance.Decision Tree:
Is the task about providing interactive guidance or leading through a process?
guide_
.Is the task about explaining or analyzing content?
explain_
oranalyze_
.guide_
.Patterns to Merge:
ask_secure_by_design_questions
>>guide_secure_design_questions
ask_uncle_duke
>>guide_with_uncle_duke
dialog_with_socrates
>>guide_socratic_dialog
provide_guidance
>>guide_general_advice
tweet
>>guide_tweet_creation
8.
misc_
Description: Use
misc_
for tasks that do not fit neatly into other categories.Use Case: Utility functions or one-off tasks not covered by other verbs.
Examples:
misc_clean_text
: Clean and format text.misc_translate
: Translate text between languages.Decision Tree:
misc_
.Patterns to Merge:
translate
>>misc_translate
to_flashcards
>>misc_to_flashcards
clean_text
>>misc_clean_text
coding_master
>>misc_coding_master
loaded
>>misc_loaded
md_callout
>>misc_md_callout
raycast
>>misc_raycast
9.
_official_
Description: Use this prefix for internal or system-level patterns that are not meant for specific tasks or are intended as templates or reference.
Use Case: Best for template patterns, internal references, or placeholders intended for system use or future modifications.
Patterns to Merge:
official_pattern_template
>>_official_pattern_template
show_fabric_options_markmap
>>_official_show_fabric_options_markmap
10.
test_
Description: Use this prefix for test patterns, intended to verify functionality or output of a pattern.
Use Case: Never imported into official repository.
Decision Tree for Choosing the Right Action Verb
Do you need to break down or understand the components of something?
analyze_
.Are you assessing the quality, value, or effectiveness of something?
evaluate_
.Are you retrieving specific information from a larger set of data?
extract_
.Are you generating new content or creating something from scratch?
create_
.Are you improving or refining existing content or solutions?
optimize_
.Do you need to clarify or explain a concept to make it easier to understand?
explain_
.Are you providing guidance or leading someone through a process?
guide_
.misc_
for miscellaneous tasks.Note: If you think of a verb that's not listed, check the synonyms to find the corresponding action verb.
Guidelines for Introducing New Verbs
To keep the naming system simple while ensuring clarity:
The goal is to ensure that each verb is unique and intuitive, keeping the system straightforward and easy to use.
Next Steps:
As the pattern catalog continues to expand rapidly with more users adopting fabric and contributing new patterns, implementing this naming convention soon could greatly enhance consistency and usability for everyone involved. I'm more than happy to assist with this effort in any way I can—whether it's updating documentation, providing examples, or helping to rename existing patterns to align with the new standard.
If you believe this proposal has potential, I'd be thrilled to hear your thoughts. Are there any concerns or suggestions on how we could improve it further? I'm eager to collaborate and refine it based on the community's input.
Thank you once again for considering this suggestion!
I'm excited about the possibility of making the pattern catalog even more user-friendly and consistent, especially as we continue to grow and welcome more contributors. I look forward to your feedback and the opportunity to enhance the project together.
The text was updated successfully, but these errors were encountered: