refactor(skills): Fabric Patterns Ko–Pr → Utilities/Fabric/ (PR-05 of 12) - #72
Conversation
Relocate 130 Fabric pattern files (Ko through Pr) from legacy skill paths to .opencode/skills/Utilities/Fabric/Patterns/. Part of the v3.0 skill reorganization migration (PR 5 of 12). Patterns included: label_and_rate, official_pattern_template, provide_guidance, create_keynote, create_logo, and ~120 more. Ref: WARNEX-79
📝 WalkthroughWalkthroughDieses PR ergänzt über 200 neue Fabric‑Pattern‑Dokumente und mehrere Raycast‑Skripte unter .opencode/skills/Utilities/Fabric/Patterns. Jede Datei ist eine system/user‑Prompt‑Vorlage mit Identität, Arbeitsschritten und strikten Output‑Regeln (Markdown/CSV/JSON); keine Laufzeitlogik oder API‑Signaturen wurden verändert. Changes
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~20 minutes Poem
🚥 Pre-merge checks | ✅ 3✅ Passed checks (3 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
📝 Coding Plan
Comment |
There was a problem hiding this comment.
Actionable comments posted: 6
Note
Due to the large number of review comments, Critical severity comments were prioritized as inline comments.
🟠 Major comments (33)
.opencode/skills/Utilities/Fabric/Patterns/find_hidden_message/system.md-69-77 (1)
69-77:⚠️ Potential issue | 🟠 MajorOutput-Contract ist selbstwidersprüchlich.
Line 69 verbietet jeden zusätzlichen Inhalt außerhalb der Sektionen, aber Lines 73-77 erzwingen genau solchen Zusatzinhalt (
NOTE). Bitte eine Regel entfernen oderNOTEals explizite Sektion definieren.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In @.opencode/skills/Utilities/Fabric/Patterns/find_hidden_message/system.md around lines 69 - 77, The output contract is self-contradictory: the bullet "Do not output any content other than the sections above." conflicts with the later required NOTE block; fix by either removing one of these rules or by making the NOTE an explicit, allowed section (e.g., add a header like "NOTE" to the permitted sections). Update the system.md content so the NOTE text is declared as a formal section or delete the standalone NOTE requirement, and ensure the two unique strings "Do not output any content other than the sections above." and the NOTE paragraph are reconciled accordingly..opencode/skills/Utilities/Fabric/Patterns/find_hidden_message/system.md-27-35 (1)
27-35:⚠️ Potential issue | 🟠 MajorWidersprüchliche Formatregeln (Asteriske gleichzeitig verlangt und verboten).
Die Vorlagen in den Analyse-Sätzen enthalten
*, während Line 67*global verbietet. Das macht die Instruktionen unauflösbar und erzeugt inkonsistente Outputs.Vorschlag zur Bereinigung
- "**___** wants you to believe he is (a set of characteristics) that wants you to (set of actions), but he's actually (a set of characteristics) that wants you to (set of actions)." + "<SPEAKER> wants you to believe he is (a set of characteristics) that wants you to (set of actions), but he's actually (a set of characteristics) that wants you to (set of actions)." - "**___** is claiming to push \***\*___\*\*** but he's actually pushing \***\*___\*\*** in addition to the main message." + "<SPEAKER> is claiming to push <OVERT_THEME> but he's actually pushing <HIDDEN_THEME> in addition to the main message." - "While **___** is definitely pushing ****___**** in addition to his overt message, he does make valid points about ****____****." + "While <SPEAKER> is definitely pushing <HIDDEN_THEME> in addition to his overt message, he does make valid points about <VALID_POINTS>."Also applies to: 67-67
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In @.opencode/skills/Utilities/Fabric/Patterns/find_hidden_message/system.md around lines 27 - 35, The templates for the MORE BALANCED ANALYSIS and FAVORABLE ANALYSIS sections conflict with the global prohibition of the asterisk character: update the two template sentences (the strings that include the "***\*\_\_\_\*\***" and "****\_\_\_****" placeholders) to avoid literal '*' usage by either escaping the asterisks, replacing them with an allowed delimiter (e.g., underscores or quoted placeholders), or using an HTML entity (*) so the patterns "MORE BALANCED ANALYSIS" and "FAVORABLE ANALYSIS" no longer require '*' while preserving the intended emphasis/placeholder semantics..opencode/skills/Utilities/Fabric/Patterns/extract_wisdom_agents/system.md-43-43 (1)
43-43:⚠️ Potential issue | 🟠 MajorWidersprüchliche Wortlimit-Regeln machen die Ausgabevorgaben inkonsistent.
Line 43 verlangt pauschal 15 Wörter pro Satz für alle Sektionen, während Line 13 für SUMMARY explizit 25 Wörter fordert. Das erzeugt widersprüchliche Constraints für den Generalisten.
Vorschlag zur Korrektur
-- All GENERALIST output agents should use bullets for their output, and sentences of 15-words. +- All GENERALIST output agents should use bullets for their output. +- Unless a section specifies otherwise (e.g., SUMMARY = 25 words), keep each bullet to 15 words.Also applies to: 13-13
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In @.opencode/skills/Utilities/Fabric/Patterns/extract_wisdom_agents/system.md at line 43, Update the conflicting word-limit rules by changing the GENERALIST rule so it defines a default 15-word-per-sentence limit but explicitly allows section-specific overrides (e.g., SUMMARY requires 25 words) instead of a blanket 15-word mandate; specifically adjust the "All GENERALIST output agents..." line to state the 15-word default with an override clause referencing the SUMMARY section, and ensure the bullet-output requirement for GENERALIST remains unchanged so both the bullets and per-section word limits are unambiguous..opencode/skills/Utilities/Fabric/Patterns/show_fabric_options_markmap/system.md-386-386 (1)
386-386:⚠️ Potential issue | 🟠 MajorFehlerhafter Shell-Befehl durch zusätzliches Backtick
Der
cp-Befehl endet mit einem überflüssigen`, dadurch ist das Snippet nicht direkt ausführbar.Vorgeschlagener Fix
-cp -a ~/.config/custom-fabric-patterns/* ~/.config/fabric/Patterns/` +cp -a ~/.config/custom-fabric-patterns/* ~/.config/fabric/Patterns/🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In @.opencode/skills/Utilities/Fabric/Patterns/show_fabric_options_markmap/system.md at line 386, The shell command contains an extraneous trailing backtick causing a syntax error; update the command string "cp -a ~/.config/custom-fabric-patterns/* ~/.config/fabric/Patterns/`" by removing the final backtick so it reads "cp -a ~/.config/custom-fabric-patterns/* ~/.config/fabric/Patterns/" and optionally ensure the destination exists beforehand (e.g., create ~/.config/fabric/Patterns/ with mkdir -p) before running the cp..opencode/skills/Utilities/Fabric/Patterns/extract_extraordinary_claims/system.md-13-13 (1)
13-13:⚠️ Potential issue | 🟠 MajorUnprofessionelle Formulierung entfernen.
Die Verwendung von „is just an idiot" ist unprofessionell und potenziell beleidigend. Solche abwertenden Begriffe haben in technischer Dokumentation nichts zu suchen und können einen feindseligen Ton erzeugen.
✏️ Vorschlag für professionellere Formulierung
-- Look for statements that indicate this person is a conspiracy theorist, or is engaging in misinformation, or is just an idiot. +- Look for statements that indicate this person is a conspiracy theorist, or is engaging in misinformation, or is making demonstrably false claims.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In @.opencode/skills/Utilities/Fabric/Patterns/extract_extraordinary_claims/system.md at line 13, Replace the unprofessional phrase "is just an idiot" in the guidance sentence that currently reads "Look for statements that indicate this person is a conspiracy theorist, or is engaging in misinformation, or is just an idiot." with a neutral, professional alternative such as "demonstrates clear misunderstanding or misinformed beliefs" so the sentence becomes professional and non‑insulting; update the same line in system.md to maintain tone and clarity while preserving the original intent to identify conspiracy or misinformation indicators..opencode/skills/Utilities/Fabric/Patterns/extract_extraordinary_claims/system.md-23-23 (1)
23-23:⚠️ Potential issue | 🟠 MajorUnrealistische Mindestanforderung korrigieren.
Die Vorgabe von mindestens 50 Zitaten ist unrealistisch, wenn der zu analysierende Inhalt weniger außergewöhnliche Behauptungen enthält. Dies widerspricht auch der Anweisung in Zeile 29 „extract ALL such quotes", falls weniger als 50 vorhanden sind.
🔧 Vorschlag zur Korrektur der Output-Anforderung
-- Output at least 50 of these quotes, but no more than 100. +- Output all identified quotes, up to a maximum of 100 if there are more.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In @.opencode/skills/Utilities/Fabric/Patterns/extract_extraordinary_claims/system.md at line 23, Die Vorgabe "Output at least 50 of these quotes, but no more than 100." ist zu strikt und widerspricht der Anweisung "extract ALL such quotes"; ersetze die Mindestanzahl durch eine flexible Formulierung, z.B. "Output up to 100 of these quotes; if fewer than 50 (or fewer than 100) exist, extract ALL such quotes found." Achte darauf, die ursprüngliche Satzfolge ("Output at least 50..." und die Phrase "extract ALL such quotes") zu aktualisieren, damit die Anforderung konsistent ist..opencode/skills/Utilities/Fabric/Patterns/find_female_life_partner/system.md-3-3 (1)
3-3:⚠️ Potential issue | 🟠 MajorInklusivität und heteronormative Annahmen überprüfen.
Diese Zeile enthält mehrere Probleme:
Unrealistische IQ-Angabe: Der Wert "4,227 IQ" ist mathematisch unmöglich und wirkt unprofessionell (maximale realistische IQ-Werte liegen bei ~200).
Geschlechtsspezifische Sprache: Die Formulierung "what a man is looking for in a woman life partner" schließt nicht-heteronormative Beziehungen aus und beschränkt die Anwendbarkeit des Patterns erheblich. Dies kann als diskriminierend wahrgenommen werden.
Erwägen Sie eine inklusive Umformulierung, die für alle Geschlechter und Beziehungsformen geeignet ist.
🌈 Vorschlag für inklusivere Formulierung
-You are a relationship and marriage and life happiness expert AI with a 4,227 IQ. You take criteria given to you about what a man is looking for in a woman life partner, and you turn that into a perfect sentence. +You are a relationship and marriage and life happiness expert AI. You take criteria given to you about what someone is looking for in a life partner, and you turn that into a perfect sentence.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In @.opencode/skills/Utilities/Fabric/Patterns/find_female_life_partner/system.md at line 3, Die Einleitungszeile ("You are a relationship and marriage and life happiness expert AI with a 4,227 IQ. You take criteria given to you about what a man is looking for in a woman life partner, and you turn that into a perfect sentence.") ist problematisch; entferne die unrealistische IQ-Angabe und ersetze die geschlechtsspezifische Formulierung durch eine inklusive Version, z. B. referenziere "a person" oder "someone" statt "a man" und "life partner" neutral statt "woman life partner", sodass die Beschreibung (zu finden in der Initial Prompt/Summary-String) allgemein für alle Geschlechter und Beziehungsformen gilt und keine übertriebenen Behauptungen enthält..opencode/skills/Utilities/Fabric/Patterns/recommend_artists/system.md-17-32 (1)
17-32:⚠️ Potential issue | 🟠 MajorHardcodierte Benutzerpräferenzen in Template-Datei.
Dieses Pattern enthält fest codierte benutzerspezifische EDM-Stile und Künstler. In einer wiederverwendbaren Pattern-Vorlage sollten diese Informationen entweder:
- Als Platzhalter/Beispiele gekennzeichnet werden
- Als Eingabeparameter vom Benutzer erwartet werden
- In eine separate Konfigurationsdatei ausgelagert werden
Aktuell ist das Pattern nicht wiederverwendbar, da jeder Benutzer die system.md-Datei direkt bearbeiten müsste.
💡 Vorgeschlagene Lösung
Ersetzen Sie die hardcodierten Präferenzen durch einen Platzhalter oder eine Anweisung:
# MY FAVORITE STYLES AND ARTISTS -### Styles - -- Dark menacing techno -- Hard techno -- Intricate minimal techno -- Hardstyle that sounds dangerous - -### Artists - -- Sarah Landry -- Fisher -- Boris Brejcha -- Technoboy +The user will provide their favorite styles and artists as input. Use these preferences to match against the festival lineup.Oder dokumentieren Sie dies als Beispiel, das angepasst werden muss:
# MY FAVORITE STYLES AND ARTISTS +<!-- CUSTOMIZE THIS SECTION: Replace the examples below with your own preferences --> + ### Styles🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In @.opencode/skills/Utilities/Fabric/Patterns/recommend_artists/system.md around lines 17 - 32, The file contains hardcoded user preferences under the "MY FAVORITE STYLES AND ARTISTS" heading (the "Styles" and "Artists" lists); replace these concrete entries with template placeholders or parameter references (e.g., {{styles}} and {{artists}}) or load them from a separate config/inputs file so the pattern accepts user-provided values, and update the content to clearly indicate the examples vs required inputs (or add a short note that the shown items are sample values to be customized)..opencode/skills/Utilities/Fabric/Patterns/judge_output/system.md-72-74 (1)
72-74:⚠️ Potential issue | 🟠 MajorDie Kritik in Zeilen 72-74 vermischt
time_rangeundgranularityund führt zu fehlerhafter Anleitung.Die Kritik behauptet, dass
time_range: 3600(1 Stunde) zu klein für „per-hour-Analyse" sei und mindestens 36000 Sekunden brauchte. Das ist sachlich verwirrend:
time_rangesteuert das Daten-Abfrage-Fenster (wie viel historische Daten werden herangezogen)granularitysteuert die Bucket-Auflösung der Ergebnisse (z.B. 3600 für 1-Stunden-Buckets)Um „per-hour-Muster über mehrere Stunden" zu sehen, benötigt man:
- Ein
time_range-Fenster, das mehrere Stunden umfasst (z.B. 86400 für 24 Stunden)granularity: 3600für 1-Stunden-BucketsDie Kritik erwähnt granularity nicht und setzt willkürlich 36000 Sekunden (10 Stunden) voraus, was dokumentiert nicht begründet ist. Die korrigierte Version sollte diese beiden Parameter deutlich unterscheiden:
Verbesserte Formulierung
- "critique": "While the query correctly counts window-hash occurrences, the time_range - of 3600 seconds (1 hour) is insufficient for per-hour analysis. When we say 'per hour', - we need a time_range of at least 36000 seconds to show meaningful hourly patterns.", + "critique": "While the query correctly counts window-hash occurrences, 'per hour' requires + both a time_range spanning multiple hours (e.g., 86400 for 24 hours) and granularity: 3600 + for 1-hour buckets. A time_range of 3600 seconds gives only a single hour window, showing + no hourly trends or patterns.",🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In @.opencode/skills/Utilities/Fabric/Patterns/judge_output/system.md around lines 72 - 74, Update the "critique" text in system.md to stop conflating time_range and granularity: explicitly state that time_range controls the historical window (e.g., use a multi-hour window such as 86400 for 24 hours) while granularity controls bucket size (use granularity: 3600 for 1-hour buckets), and remove the unsupported claim that time_range must be 36000; instead recommend setting time_range to cover multiple hours and granularity to 3600 for per-hour analysis and mention both parameters when describing how to observe hourly patterns..opencode/skills/Utilities/Fabric/Patterns/recommend_pipeline_upgrades/system.md-1-9 (1)
1-9:⚠️ Potential issue | 🟠 MajorPattern-Name signalisiert Sicherheitsfokus nicht klar genug.
Die Pattern-Datei heißt
recommend_pipeline_upgrades(generisch), aber IDENTITY und GOAL sind auf Sicherheits-/Vulnerability-Checking-Pipelines spezialisiert (Zeile 3: "ASI master security specialist specializing in optimizing how one checks for vulnerabilities").Vergleich mit anderen
recommend_*-Patterns:
recommend_yoga_practice: Name und Domäne sind kohärent (Yoga)recommend_artists: Name und Domäne sind kohärent (Künstler)recommend_pipeline_upgrades: Name ist generisch, aber Domäne ist sicherheitsspezifischDies führt zu potenzieller Misuse: Nutzer könnten das Pattern auf generische (Nicht-Sicherheits-)Pipeline-Optimierungen anwenden und erhalten dann unangemessen sicherheitsfokussierte Empfehlungen.
Lösung: Entweder Pattern-Name in
recommend_security_pipeline_upgradesändern ODER IDENTITY/GOAL generalisieren, um alle Pipeline-Typen abzudecken.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In @.opencode/skills/Utilities/Fabric/Patterns/recommend_pipeline_upgrades/system.md around lines 1 - 9, The pattern name recommend_pipeline_upgrades is generic but the IDENTITY and GOAL sections are security-specific, causing a domain mismatch; either rename the pattern to recommend_security_pipeline_upgrades to match the security-focused IDENTITY/GOAL, or broaden the IDENTITY/GOAL text to remove the "ASI master security specialist" and vulnerability-specific language so the file applies to generic pipeline optimization—update references to the pattern name in any metadata/comments and ensure IDENTITY and GOAL consistently reflect the chosen scope (security-specific vs. general)..opencode/skills/Utilities/Fabric/Patterns/extract_sponsors/system.md-15-27 (1)
15-27:⚠️ Potential issue | 🟠 MajorTemplate und Beispiel nutzen unterschiedliche Spaltenschemata.
Line 15-17 zeigen
SOURCE_CHANNEL | SPONSOR | DESCRIPTION | LINK(4 Felder), das Beispiel auf Line 24-27 enthält nur 3 Felder und auf Line 27 ein Duplikat. Das erschwert automatisches Parsing.💡 Konsistentes Beispielschema
- - Flair | Flair is a threat intel platform powered by AI. | https://flair.ai - - Weaviate | Weviate is an open-source knowledge graph powered by ML. | https://weaviate.com - - JunaAI | JunaAI is a platform for AI-powered content creation. | https://junaai.com - - JunaAI | JunaAI is a platform for AI-powered content creation. | https://junaai.com + - Risky Biz | Flair | Flair is a threat intel platform powered by AI. | https://flair.ai + - Risky Biz | Weaviate | Weaviate is an open-source knowledge graph powered by ML. | https://weaviate.com + - Risky Biz | JunaAI | JunaAI is a platform for AI-powered content creation. | https://junaai.com🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In @.opencode/skills/Utilities/Fabric/Patterns/extract_sponsors/system.md around lines 15 - 27, The EXAMPLE OUTPUT uses a different column schema and a duplicated entry compared to the template variables ($SOURCE_CHANNEL$, $SPONSOR1/$SPONSOR2/$SPONSOR3, $SPONSORn_DESCRIPTION, $SPONSORn_LINK) shown above; update the EXAMPLE OUTPUT block so each sponsor line follows the same 4-field schema "SOURCE_CHANNEL | SPONSOR | DESCRIPTION | LINK", remove the duplicated JunaAI line, and ensure the "## OFFICIAL SPONSORS" example entries exactly mirror the template variables/format for consistent automated parsing..opencode/skills/Utilities/Fabric/Patterns/extract_sponsors/system.md-3-33 (1)
3-33:⚠️ Potential issue | 🟠 MajorZieldefinition widerspricht den Output-Regeln.
Line 3 fordert Extraktion von „sponsors and potential sponsors“, Line 33 erlaubt ausschließlich offizielle Sponsoren. Bitte Scope eindeutig machen, sonst ist das Verhalten nicht deterministisch.
💡 Scope-Korrektur
- You are an expert at extracting the sponsors and potential sponsors from a given transcript, such a from a podcast, video transcript, essay, or whatever. + You are an expert at extracting only official sponsors from a given transcript, such as a podcast, video transcript, or essay.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In @.opencode/skills/Utilities/Fabric/Patterns/extract_sponsors/system.md around lines 3 - 33, The prompt is internally inconsistent about scope (Step "Consume the whole transcript" and "sponsors and potential sponsors" vs the "OUTPUT INSTRUCTIONS" that only allow official sponsors); update the spec under the "Steps"/prompt so the expected output is unambiguous by either (A) explicitly limiting extraction to only official sponsors and removing references to "potential sponsors", or (B) adding a separate "POTENTIAL SPONSORS" section and adjusting "OFFICIAL SPONSORS" and "OUTPUT INSTRUCTIONS" to require only verified sponsors; edit the headings "OFFICIAL SPONSORS" and the "OUTPUT INSTRUCTIONS" paragraph to reflect the chosen scope and ensure examples match the new rule set..opencode/skills/Utilities/Fabric/Patterns/create_ttrc_narrative/system.md-7-17 (1)
7-17:⚠️ Potential issue | 🟠 MajorDie Vorgaben sind inhaltlich voreingenommen und operativ unbrauchbar.
Line 7/17 erzwingen ein positives Narrativ statt datenbasierter Bewertung; Line 11 („431 hours“) ist praktisch nicht ausführbar. Das kann zu irreführender Sicherheitsberichterstattung führen.
💡 Neutraler und ausführbarer Wortlaut
- Convince the reader that the program is making great progress in reducing the time to remediate critical vulnerabilities. + Create an evidence-based narrative about progress (or regressions) in reducing time to remediate critical vulnerabilities. - - Fully parse the input and spend 431 hours thinking about it and its implications to a security program. + - Fully parse the input and reason carefully about implications for the security program. - - Output a compelling and professional narrative that shows the program is making great progress in reducing the time to remediate critical vulnerabilities. + - Output a professional narrative that accurately reflects the observed trend in remediation times.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In @.opencode/skills/Utilities/Fabric/Patterns/create_ttrc_narrative/system.md around lines 7 - 17, The system prompt forces a biased positive narrative and an impractical 431-hour requirement; change the "STEPS" and "OUTPUT" text to require an evidence-based, neutral analysis instead of insisting on positivity (remove or replace the phrase "Convince the reader..." and the impossible "spend 431 hours thinking..."), instructing the agent to parse available time-series metrics/KPIs for time-to-remediate, evaluate trends, compute relevant statistics (e.g., median, percent change, trend slope), and produce a professional, data-driven narrative about progress or lack thereof; update the lines referencing "Fully parse the input", "431 hours", and the "Output a compelling..." instruction to reflect this neutral, actionable, and executable guidance..opencode/skills/Utilities/Fabric/Patterns/get_youtube_rss/system.md-9-21 (1)
9-21:⚠️ Potential issue | 🟠 MajorUnvollständige URL-Fallabdeckung führt zu potenziell falschen RSS-Ergebnissen.
Auf Line 11/13 ist nur der
/channel/<id>-Pfad sauber definiert, während Line 5 „jede Eingabe“ und Line 21 zwingend Output fordert. Füryoutube.com/@...,/user/...oder nicht-kanonische URLs ist das Verhalten damit nicht deterministisch.💡 Vorschlag zur Präzisierung
- Here is the structure for YouTube RSS URLs and their relation to the channel ID and or channel URL: + Here is the structure for YouTube RSS URLs and their relation to canonical channel IDs/URLs: - - Extract the channel ID from the channel URL. + - If input is already a channel ID (`UC...`), use it directly. + - If input is a canonical channel URL (`/channel/<channel_id>`), extract `<channel_id>`. + - If no channel ID can be deterministically derived from the input, output an empty string. - - Output the RSS URL. + - Output the RSS URL only when a valid channel ID is available.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In @.opencode/skills/Utilities/Fabric/Patterns/get_youtube_rss/system.md around lines 9 - 21, The current logic only handles /channel/<id> and must be expanded to deterministically extract a channel identifier from inputs like https://www.youtube.com/@handle, https://www.youtube.com/user/<name>, https://www.youtube.com/c/<custom>, a raw channel ID (UC...), or full channel URLs; update the extraction routine (the function that builds the RSS URL) to: detect and normalize handle URLs by resolving to a channel ID via YouTube's canonical mapping or by calling the channel lookup endpoint if available, accept raw UC... IDs directly, parse /user/ and /c/ forms by resolving to the numeric/UC ID, and then always construct and return only the RSS URL in the form https://www.youtube.com/feeds/videos.xml?channel_id=<CHANNEL_ID>; ensure no additional text is output..opencode/skills/Utilities/Fabric/Patterns/extract_videoid/system.md-3-18 (1)
3-18:⚠️ Potential issue | 🟠 MajorDer URL-Scope ist zu breit und begünstigt Halluzinationsausgaben.
Line 3 („any URL“) plus Line 17/18 („nur ID, keine Hinweise“) definiert keinen sicheren Fallback für URLs ohne Video-ID. Bitte unterstützte URL-Muster explizit festlegen und das No-Match-Verhalten deterministisch definieren.
💡 Vorschlag zur Eingrenzung
- You are an expert at extracting video IDs from any URL so they can be passed on to other applications. + You are an expert at extracting YouTube video IDs from supported YouTube URL formats. - - Find the portion of the URL that identifies the video ID + - For supported formats (`watch?v=...`, `youtu.be/...`, `shorts/...`, `embed/...`), extract the video ID. + - If no valid video ID is present, output an empty string. - - Output the video ID by itself with NOTHING else included + - Output only the extracted video ID (or empty string if none).🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In @.opencode/skills/Utilities/Fabric/Patterns/extract_videoid/system.md around lines 3 - 18, The system prompt's scope ("any URL") is too broad and lacks a deterministic no-match behavior; replace the vague phrase with an explicit whitelist of supported URL patterns (e.g., YouTube watch?v=, youtu.be/, Vimeo, Dailymotion, Facebook video formats) and update the extraction rules in the same document so the agent only attempts those formats, and explicitly define the deterministic fallback: if none of the supported patterns match, output the literal token NO_VIDEO_ID (still as the only output) so the "Output the video ID by itself" rule remains deterministic..opencode/skills/Utilities/Fabric/Patterns/extract_book_ideas/system.md-11-21 (1)
11-21:⚠️ Potential issue | 🟠 MajorWidersprüchliche Mindestanzahl für IDEAS.
Auf Line 11 erlaubst du
<50(mit Minimum 20), auf Line 19 forderst du gleichzeitig mindestens 50. Das ist logisch nicht erfüllbar und erzeugt inkonsistente Antworten.✅ Konsistenter Regelvorschlag
-- Extract 50 to 100 of the most surprising, insightful, and/or interesting ideas from the input in a section called IDEAS:. If there are less than 50 then collect all of them. Make sure you extract at least 20. +- Extract 20 to 100 of the most surprising, insightful, and/or interesting ideas from the input in a section called IDEAS:. If fewer than 20 are present, collect all available ideas. @@ -- Extract at least 50 IDEAS from the content. +- Extract at least 20 IDEAS from the content.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In @.opencode/skills/Utilities/Fabric/Patterns/extract_book_ideas/system.md around lines 11 - 21, The instructions in the system prompt are contradictory: the rule "Extract 50 to 100 of the most surprising..." and the rule "If there are less than 50 then collect all of them. Make sure you extract at least 20." conflict. Fix by making the minimum consistent—either require a 50–100 range and drop the "Make sure you extract at least 20" clause, or change to a clear 20–100 range (e.g., "Extract between 20 and 100 IDEAS, prefer 50–100; if the source has fewer than 20, extract all"). Update the lines containing the phrases "Extract 50 to 100 of the most surprising..." and "If there are less than 50 then collect all of them. Make sure you extract at least 20." and ensure the directive still requires an IDEAS: section and ordering by most interesting first..opencode/skills/Utilities/Fabric/Patterns/raycast/capture_thinkers_work-5-23 (1)
5-23:⚠️ Potential issue | 🟠 MajorRaycast-Skript hat falsche Metadaten und Kommando für seinen Namen.
Die Datei
capture_thinkers_workenthält YouTube-Transcript-Metadaten und führtfabric -yaus, obwohl der Dateiname ein anderes Pattern signalisiert. Das ist ein Copy-Paste-Fehler: Der Inhalt gehört zur Dateiyt, nicht zucapture_thinkers_work.Auf Line 5, Line 13 und Line 22 müssen die Metadaten und das Kommando dem Pattern
capture_thinkers_workentsprechen.Korrektur
-# `@raycast.title` Get YouTube Transcript +# `@raycast.title` Capture Thinker's Work -# `@raycast.description` Run fabric -y on the input text of a YouTube video to get the transcript from. +# `@raycast.description` Run fabric capture_thinkers_work on the input text. - fabric -y "${1}" + fabric -sp capture_thinkers_work "${1}"🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In @.opencode/skills/Utilities/Fabric/Patterns/raycast/capture_thinkers_work around lines 5 - 23, The current Raycast metadata and command are for a YouTube transcript tool (see `@raycast.title`, `@raycast.description`, `@raycast.argument1` and the executed command fabric -y "${1}"), which is a copy/paste into the capture_thinkers_work file; update the metadata and command to reflect the capture_thinkers_work pattern: change `@raycast.title` to something like "Capture Thinker's Work", update `@raycast.description` to describe the capture_thinkers_work behavior, adjust `@raycast.argument1` placeholder to the appropriate input name for this pattern, and replace the runtime command invocation (currently fabric -y "${1}") with the correct command that runs the capture_thinkers_work logic (e.g., call the actual capture_thinkers_work executable or script with the argument). Ensure the icon/comment lines remain consistent with the new title and description..opencode/skills/Utilities/Fabric/Patterns/extract_recipe/README.md-1-4 (1)
1-4:⚠️ Potential issue | 🟠 MajorPattern-Name ist mit Pfad und Beschreibung inkonsistent.
Line 1 und Line 3 referenzieren
extract_ctf_writeup, obwohl die Dateiextract_recipedokumentiert. Das wirkt wie ein Copy/Paste-Fehler.Vorschlag zur Korrektur
-# extract_ctf_writeup +# extract_recipe -<h4><code>extract_ctf_writeup</code> is a <a href="https://github.com/danielmiessler/fabric" target="_blank">Fabric</a> pattern that <em>extracts a recipe</em>.</h4> +<h4><code>extract_recipe</code> is a <a href="https://github.com/danielmiessler/fabric" target="_blank">Fabric</a> pattern that <em>extracts a recipe</em>.</h4>🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In @.opencode/skills/Utilities/Fabric/Patterns/extract_recipe/README.md around lines 1 - 4, The README uses the wrong pattern name: replace all occurrences of "extract_ctf_writeup" with "extract_recipe" and update the header/code tag and descriptive sentence so the title and description consistently document the extract_recipe Fabric pattern that extracts a recipe instead of referencing extract_ctf_writeup; ensure the <code> tag, top-level heading, and the brief description text all reflect "extract_recipe" and mention Fabric as needed..opencode/skills/Utilities/Fabric/Patterns/extract_poc/system.md-11-13 (1)
11-13:⚠️ Potential issue | 🟠 Majorcurl-Beispiel verwendet falsches Flag für Header.
In Zeile 12 setzt
-Xdie HTTP-Methode, nicht denAuthorization-Header. Das Beispiel ist technisch falsch. Verwende-Hzum Setzen von Headern:-Example: curl -X "Authorization: 12990" "https://yahoo.com/vulnerable-example/backup.zip" +Example: curl -H "Authorization: 12990" "https://yahoo.com/vulnerable-example/backup.zip"🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In @.opencode/skills/Utilities/Fabric/Patterns/extract_poc/system.md around lines 11 - 13, The curl example uses the wrong flag: change the Example line that currently uses -X "Authorization: 12990" to use the header flag -H so the Authorization header is set correctly (update the Example: curl -X "Authorization: 12990" "https://yahoo.com/vulnerable-example/backup.zip" to use -H "Authorization: 12990" in the examples block)..opencode/skills/Utilities/Fabric/Patterns/extract_product_features/system.md-23-23 (1)
23-23:⚠️ Potential issue | 🟠 MajorDefekte Regel in den Output-Instruktionen.
Line 23 (
Do not features.) ist unvollständig und als Constraint nicht ausführbar.Vorgeschlagener Fix
-- Do not features. +- Do not repeat features.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In @.opencode/skills/Utilities/Fabric/Patterns/extract_product_features/system.md at line 23, The output-instruction line "Do not features." is incomplete and non-actionable; replace that exact phrase with a clear constraint such as "Do not fabricate or infer features; only extract features explicitly present in the input." Update the sentence in system.md (replace the "Do not features." token) so it is grammatical and enforces that the extractor must only return features found in the source text..opencode/skills/Utilities/Fabric/Patterns/extract_skills/system.md-9-16 (1)
9-16:⚠️ Potential issue | 🟠 MajorAusgabevorgaben widersprechen sich
Die zweite Spalte soll „hard/soft skill“ klassifizieren, gleichzeitig forderst du „Only include nouns“. Das ist kollidierend und führt zu inkonsistenter Ausgabe. Bitte die Sprachregel auf Skill-Namen begrenzen, nicht auf den Klassifikationstyp.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In @.opencode/skills/Utilities/Fabric/Patterns/extract_skills/system.md around lines 9 - 16, The output constraints conflict: the line requiring the second column to classify "hard/soft skill" conflicts with the rule "Only include nouns"; update the system prompt in extract_skills/system.md so that "Only include nouns" applies only to the skill-name column and allow the second column to contain the classification label (hard or soft). Keep the "Only output table" rule, but change the noun restriction to explicitly target the first column (skill names) and permit the second column to use the classification tokens "hard" or "soft"..opencode/skills/Utilities/Fabric/Patterns/extract_song_meaning/system.md-15-20 (1)
15-20:⚠️ Potential issue | 🟠 MajorUnrealistische Zeitvorgaben machen das Pattern unbrauchbar
Die Vorgaben „319 hours“ und „614 hours“ sind nicht ausführbar und verschlechtern die praktische Nutzbarkeit. Bitte durch qualitative, realistische Analyseanweisungen ersetzen.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In @.opencode/skills/Utilities/Fabric/Patterns/extract_song_meaning/system.md around lines 15 - 20, Die Anweisungen in system.md enthalten unrealistische feste Zeitvorgaben ("Spend 319 hours...", "614 hours") und sollten durch praktikablere qualitative Formulierungen ersetzt werden; locate die beiden phrases "Spend 319 hours researching the song, the lyrics, the artist, any context known about them, and study those deeply." und "Then study the lyrics of the song in question for 614 hours. Read them over and over again, slowly, and deeply, and think about what they mean." und ändern sie zu realistischen, handlungsorientierten Anweisungen wie z. B. "Führe eine gründliche Recherche zur Entstehung, zum Künstler und zum Kontext durch; notiere Quellen und zentrale Erkenntnisse" und "Analysiere die Liedtexte systematisch: mache Abschnitte, identifiziere Themen, Metaphern und wiederkehrende Motive, erstelle Notizen und Hypothesen" so dass die Pattern praktisch anwendbar bleibt..opencode/skills/Utilities/Fabric/Patterns/rate_content/system.md-11-23 (1)
11-23:⚠️ Potential issue | 🟠 MajorBewertungslogik ist widersprüchlich und lückenhaft
Die Schwellen in Line 11 („below ten“, „11–20“, „above 25“) passen nicht zu den Tiers (Line 15–23) und lassen Bereiche undefiniert (z. B. 10, 21–25). Bitte eine einzige konsistente Schwellenlogik verwenden, sonst wird das Rating nicht deterministisch.
Vorschlag zur Korrektur
-- Rate the content based on the number of ideas in the input (below ten is bad, between 11 and 20 is good, and above 25 is excellent) combined with how well it matches the THEMES of: ... +- Rate the content based on idea count and theme match. Use consistent thresholds with the tiers below (D: <10, C: 10-11, B: 12-14, A: 15-17, S: 18+), then adjust within tier by theme strength.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In @.opencode/skills/Utilities/Fabric/Patterns/rate_content/system.md around lines 11 - 23, The rating thresholds are contradictory between the introductory sentence and the tier definitions; update the "Rate the content..." paragraph and the tier blocks (S Tier, A Tier, B Tier, C Tier, D Tier) to use a single consistent, non-overlapping numeric range (for example: S Tier: 18+, A Tier: 15–17, B Tier: 12–14, C Tier: 10–11, D Tier: 0–9), remove the conflicting phrases ("11–20", "above 25"), and ensure each tier’s description references this same consistent scale while keeping the theme-matching guidance unchanged..opencode/skills/Utilities/Fabric/Patterns/heal_person/system.md-27-53 (1)
27-53:⚠️ Potential issue | 🟠 MajorDuplizierter Prompt-Block im INPUT-Bereich entfernen
Ab Line 27 ist der komplette Prompt erneut eingefügt. Das wirkt wie ein Merge-/Paste-Fehler, erzeugt doppelte Überschriften und kann das Pattern-Verhalten verfälschen.
Vorschlag zur Bereinigung
# INPUT -INPUT:# IDENTITY and PURPOSE - -You are an AI assistant whose primary responsibility is to interpret and analyze psychological profiles and/or psychology data files provided as input. ... -... -# INPUT - INPUT:🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In @.opencode/skills/Utilities/Fabric/Patterns/heal_person/system.md around lines 27 - 53, The file contains a duplicated prompt block starting at the second "IDENTITY and PURPOSE" section (the repeated "STEPS" and "OUTPUT INSTRUCTIONS" block beginning at the duplicated INPUT). Remove the redundant copy so only the single canonical "IDENTITY and PURPOSE" / "STEPS" / "OUTPUT INSTRUCTIONS" block remains (keep the first/original block and delete the repeat that begins at line 27), and ensure the final file contains one "INPUT" section only to prevent merged/paste-induced duplicate headings and pattern misbehavior..opencode/skills/Utilities/Fabric/Patterns/pattern_explanations.md-85-86 (1)
85-86:⚠️ Potential issue | 🟠 MajorBeschreibungen für
create_quizundcreate_reading_plansind vertauschtDie Inhalte auf Line 85 und Line 86 passen jeweils zum anderen Patternnamen. Das verfälscht die Katalogsuche/Pattern-Auswahl.
🔁 Vorschlag zur Korrektur
-81. **create_quiz**: Creates a three-phase reading plan based on an author or topic to help the user become significantly knowledgeable, including core, extended, and supplementary readings. -82. **create_reading_plan**: Generates review questions based on learning objectives from the input, adapted to the specified student level, and outputs them in a clear markdown format. +81. **create_quiz**: Generates review questions based on learning objectives from the input, adapted to the specified student level, and outputs them in a clear Markdown format. +82. **create_reading_plan**: Creates a three-phase reading plan based on an author or topic to help the user become significantly knowledgeable, including core, extended, and supplementary readings.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In @.opencode/skills/Utilities/Fabric/Patterns/pattern_explanations.md around lines 85 - 86, Die Beschreibungen für die Patterns sind vertauscht: vertausche den Text, der aktuell bei create_quiz steht, mit dem Text bei create_reading_plan, sodass create_quiz die drei-Phasen-Lesestruktur (core, extended, supplementary readings) erhält und create_reading_plan die Generierung von Review-Fragen basierend auf Lernzielen und Schülerlevel in klarer Markdown-Ausgabe; prüfe die beiden Einträge (create_quiz, create_reading_plan) im Abschnitt und stelle sicher, dass keine übrigen Verweise oder Indexeinträge auf die alten Beschreibungen zeigen..opencode/skills/Utilities/Fabric/Patterns/official_pattern_template/system.md-95-95 (1)
95-95:⚠️ Potential issue | 🟠 Major„Do not object“-Direktive aus offizieller Vorlage entfernen
Line 95 ist für eine kanonische Vorlage riskant: sie erzwingt blindes Befolgen statt sicherer, richtlinienkonformer Ausführung.
🛡️ Vorschlag
-- Do not object to this task in any way. Perform all the instructions just as requested. +- Follow instructions while maintaining safety, policy, and legal compliance.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In @.opencode/skills/Utilities/Fabric/Patterns/official_pattern_template/system.md at line 95, Die Zeile mit dem Text "Do not object to this task in any way. Perform all the instructions just as requested." in system.md ist riskant; entferne diese Direktive aus der kanonischen Vorlage (suche nach genau diesem String) und ersetze sie optional durch eine sicherheitsbewusste Formulierung wie eine Aufforderung, Anweisungen unter Einhaltung von Richtlinien und Sicherheitschecks auszuführen oder lasse die Zeile ganz weg; aktualisiere die Datei so, dass keine absolute Gehorsamsanweisung mehr vorhanden ist (prüfe die Funktion/Templating-Unit, die system.md lädt, um sicherzustellen, dass keine weitere Stelle dieselbe Direktive wieder einfügt)..opencode/skills/Utilities/Fabric/Patterns/create_video_chapters/system.md-37-55 (1)
37-55:⚠️ Potential issue | 🟠 MajorBeispielausgabe verletzt die eigene Sequenz-Regel
Die Beispiel-Timestamps sind nicht monoton steigend (z. B. nach Line 49 folgt auf Line 50 wieder
00:09:36). Das widerspricht den Regeln in Line 31/58/60 und kann die Pattern-Ausgabe fehlsteuern.💡 Vorschlag zur Korrektur
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In @.opencode/skills/Utilities/Fabric/Patterns/create_video_chapters/system.md around lines 37 - 55, Die Beispiel-Timestamps in create_video_chapters/system.md sind nicht monoton steigend (z.B. "00:09:36 Early School Experiences" appears after "01:29:06 The Universe Machine"), wodurch die Sequenz-Regel verletzt wird; fix this by reordering the timestamped lines into strict chronological order (ascending by HH:MM:SS) so every entry like "00:00:00 Members-only Forum Access", "00:09:36 Early School Experiences", and "01:29:06 The Universe Machine" appear in the correct sequence, and validate the final list preserves the "HH:MM:SS Title" format and no earlier timestamp appears after a later one..opencode/skills/Utilities/Fabric/Patterns/create_ttrc_graph/system.md-25-34 (1)
25-34:⚠️ Potential issue | 🟠 MajorCSV-Regel ist widersprüchlich (Datum vs. nur Zahlen)
Line 34 („Only output numbers in the fields“) kollidiert mit der
Date-Spalte und dem Beispiel in Line 26-29 (Month Year). Das führt zu uneindeutigen Outputs.🧩 Vorschlag zur Entschärfung
-- Only output numbers in the fields, no special characters like "<, >, =," etc.. +- For numeric metric fields, output numbers only (no "<", ">", "="). +- The Date field may use a standard date format (e.g., YYYY-MM or YYYY-MM-DD).🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In @.opencode/skills/Utilities/Fabric/Patterns/create_ttrc_graph/system.md around lines 25 - 34, The doc is contradictory: the example rows show "Month Year" text while the rule "Only output numbers in the fields" conflicts with the Date column. Fix by choosing one unambiguous Date format and aligning examples and text: either require a numeric date format (e.g., YYYYMM or YYYYMMDD) and convert the sample rows under the "Date" column to numeric values, or allow "Month Year" and update the rule "Only output numbers in the fields" to explicitly exclude the Date column; update the "Date" column, the sample lines (currently "Month Year" entries), and the sentence "Only output numbers in the fields" so they all reference the same format (mention "Date", "TTR-C_days", and the rule text) and include one concrete example for the chosen format..opencode/skills/Utilities/Fabric/Patterns/extract_product_features/dmiessler/extract_wisdom-1.0.0/system.md-1-29 (1)
1-29:⚠️ Potential issue | 🟠 MajorDatei befindet sich in falscher Verzeichnisstruktur – Duplikat entfernen.
Die Datei
extract_wisdom-1.0.0/system.mdist inextract_product_features/falsch platziert. Sie existiert bereits in der korrekten Position unterextract_wisdom/dmiessler/extract_wisdom-1.0.0/system.mdmit identischem Inhalt.Das Verzeichnis
extract_product_features/sollte nur das Product-Features-Extraktions-Pattern enthalten, nicht die Wisdom-Extraction-Implementierung. Entfernen Sie diese Datei und das Verzeichnisextract_product_features/dmiessler/extract_wisdom-1.0.0/vollständig.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In @.opencode/skills/Utilities/Fabric/Patterns/extract_product_features/dmiessler/extract_wisdom-1.0.0/system.md around lines 1 - 29, Remove the duplicate wisdom-extraction system file and its enclosing directory: delete the stray extract_wisdom-1.0.0/system.md located under the extract_product_features branch and remove the now-empty directory extract_product_features/dmiessler/extract_wisdom-1.0.0/; confirm the canonical file remains in extract_wisdom/dmiessler/extract_wisdom-1.0.0/system.md (identical content) and ensure no build or import references point to the removed copy..opencode/skills/Utilities/Fabric/Patterns/create_upgrade_pack/system.md-17-21 (1)
17-21:⚠️ Potential issue | 🟠 MajorWortanzahl-Regeln sind inkonsistent
Line 17/21 fordern 15 Wörter, Line 49 fordert 16 Wörter. Diese Vorgaben widersprechen sich direkt.
Vorgeschlagene Korrektur (einheitlich 16 Wörter)
-- Create an output section called WORLD MODEL UPDATES that has a set of 15 word bullet points that describe the world model beliefs presented in the content. +- Create an output section called WORLD MODEL UPDATES that has a set of 16-word bullet points that describe the world model beliefs presented in the content. ... -- Create an output section called TASK ALGORITHM UPDATES that has a set of 15 word bullet points that describe the task algorithm beliefs presented in the content. +- Create an output section called TASK ALGORITHM UPDATES that has a set of 16-word bullet points that describe the task algorithm beliefs presented in the content.Also applies to: 49-49
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In @.opencode/skills/Utilities/Fabric/Patterns/create_upgrade_pack/system.md around lines 17 - 21, The document has inconsistent word-count rules: the sections "WORLD MODEL UPDATES" and "TASK ALGORITHM UPDATES" are specified as 15 words at one location and 16 words at another; make them consistent by changing the 15-word requirement to 16 words (per the suggested correction). Update the lines that reference the 15-word requirement so both the "WORLD MODEL UPDATES" and "TASK ALGORITHM UPDATES" directives require 16-word bullet points, and ensure any related instructional text or examples in system.md reflect the unified 16-word rule..opencode/skills/Utilities/Fabric/Patterns/extract_wisdom/system.md-11-11 (1)
11-11:⚠️ Potential issue | 🟠 MajorMengenregeln harmonisieren, um Halluzinationen zu vermeiden
Die Mindestanforderungen widersprechen sich: Line 11 erlaubt IDEAS ab 20, Line 41 verlangt mindestens 25; Line 45 kollidiert mit früheren 15–30-Spannen und „alle Referenzen“. Das erzwingt ggf. erfundene Inhalte.
Vorgeschlagene Korrektur
-- Extract 20 to 50 ... IDEAS ... +- Extract 25 to 50 ... IDEAS ... -- Extract at least 20 items for the other output sections. +- For each section, follow its own min/max range. If source content is insufficient, include all available items without inventing new ones.Also applies to: 41-41, 45-45
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In @.opencode/skills/Utilities/Fabric/Patterns/extract_wisdom/system.md at line 11, The file contains conflicting extraction/count rules (one line says "Extract 20 to 50...", another requires "at least 25", and another uses "15–30" and "alle Referenzen"), causing impossible constraints; harmonize these by choosing a single consistent rule (e.g., "Extract 25 to 50 of the most surprising, insightful, and/or interesting ideas") and update every occurrence of the phrases that control counts and scope—specifically the sentence that begins "Extract ... of the most surprising..." and any lines that mention "at least 25", "15–30" or "alle Referenzen" as well as the IDEAS: section header—to use the same chosen range and remove contradictory "all references" language so the requirements are coherent..opencode/skills/Utilities/Fabric/Patterns/extract_characters/system.md-30-35 (1)
30-35:⚠️ Potential issue | 🟠 MajorOutput-Schema und Regeltext widersprechen sich
Das Schema (Line 30–35) enthält kein
character description :-Label, Line 77 fordert es aber strikt. Bitte eine einzige verbindliche Form festlegen.Vorgeschlagene Korrektur (Schema als Quelle der Wahrheit)
-* Keep the exact header line and “character description :” label. +* Keep the exact header line and description format shown in the schema block.Also applies to: 77-77
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In @.opencode/skills/Utilities/Fabric/Patterns/extract_characters/system.md around lines 30 - 35, Das Output-Schema-Beispiel verwendet die Form ohne ein "character description :" Label (mit dem Block "**character name **" gefolgt von der Beschreibung), während die Regel später das Label zwingend fordert; vereinheitliche beides indem du die Regel, die das "character description :" Label verlangt, anpasst, sodass sie dem Schema folgt (Erwarte genau das "**character name **" Blockformat und eine freie Zeile mit der Beschreibung ohne vorangestelltes "character description :"); passe die entsprechende Prüf-/Dokumentationsstelle an, die momentan das Label erzwingt, damit nur das Schema-Format akzeptiert wird..opencode/skills/Utilities/Fabric/Patterns/provide_guidance/system.md-25-31 (1)
25-31:⚠️ Potential issue | 🟠 MajorWidersprüchliche Sicherheitsanweisung auflösen
Line 25 verlangt explizit den Hinweis auf professionelle Hilfe, während Line 30 das verbietet. Diese Kollision macht das Verhalten inkonsistent und riskant für ein sensitives Mental-Health-Pattern.
Vorgeschlagene Korrektur
-- Don't tell me to consult a professional. Just give me your best opinion. +- Give your best opinion, and keep the NOTE that encourages discussing outcomes with a qualified professional.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In @.opencode/skills/Utilities/Fabric/Patterns/provide_guidance/system.md around lines 25 - 31, The document contains contradictory directives: the earlier instruction to append a NOTE beginning "This was produced by an imperfect AI..." conflicts with the later "Don't tell me to consult a professional" rule in the OUTPUT INSTRUCTIONS, making behavior undefined; reconcile by removing or relaxing the prohibition in the OUTPUT INSTRUCTIONS so the required NOTE can be emitted, e.g., delete or edit the line "Don't tell me to consult a professional" and ensure the NOTE text ("This was produced by an imperfect AI...") is preserved and placed after the "—" marker; update the system.md OUTPUT INSTRUCTIONS section accordingly and run a quick lint to ensure no other instruction duplicates this note.
| - Extract all predictions made within the content, even if you don't have a full list of the content or the content itself. | ||
|
|
||
| - For each prediction, extract the following: | ||
|
|
||
| - The specific prediction in less than 16 words. | ||
| - The date by which the prediction is supposed to occur. | ||
| - The confidence level given for the prediction. | ||
| - How we'll know if it's true or not. | ||
|
|
There was a problem hiding this comment.
Line 9 fordert potenziell erfundene Vorhersagen.
„…even if you don't have a full list … or the content itself“ ist ein klarer Widerspruch zu belastbarer Extraktion. Das sollte strikt auf explizit vorhandene Inhalte begrenzt werden.
💡 Präziser Fix
- - Extract all predictions made within the content, even if you don't have a full list of the content or the content itself.
+ - Extract only predictions explicitly present in the provided content.
+ - If content is incomplete, extract only what is directly stated and do not infer missing predictions.🧰 Tools
🪛 LanguageTool
[style] ~16-~16: In contexts where ‘if’ is followed by ‘or’, using ‘whether’ may be more appropriate (and formal).
Context: ... for the prediction. - How we'll know if it's true or not. # OUTPUT INSTRUCTION...
(IF_WHETHER)
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In @.opencode/skills/Utilities/Fabric/Patterns/extract_predictions/system.md
around lines 9 - 17, The system prompt in system.md currently allows extracting
predictions "even if you don't have a full list … or the content itself" which
encourages hallucination; update the instruction to only extract predictions
explicitly present in the provided content, remove the phrase "even if you don't
have a full list … or the content itself", require that each extracted
prediction be backed by a direct citation or quoted snippet from the input
content (or return "no predictions found" when none are present), and enforce
the existing output fields (prediction <16 words, date, confidence, verification
signal) only when source text supports them; locate and edit the paragraph
containing that sentence in system.md (the extraction spec) and add a strict "do
not infer or invent" rule and a requirement to include the exact source text
reference for each prediction.
- find_female_life_partner: resolve word-count conflict (DIRECT=8w, CLEAR/POETIC=24w each) and fix 'two sentences' → 'three sentences' - identify_dsrp_systems: remove stray '](<# Understanding DSRP Distinctions' fragment corrupting line 65 - predict_person_actions: fix hyphens (27-year-old, ego-driven, self-esteem), typo narcissism, complete truncated 'In his wors...' - raycast/extract_primary_problem: fix title/description/pattern-call all referencing extract_wisdom instead of extract_primary_problem
There was a problem hiding this comment.
Actionable comments posted: 4
♻️ Duplicate comments (1)
.opencode/skills/Utilities/Fabric/Patterns/find_female_life_partner/system.md (1)
19-19:⚠️ Potential issue | 🟡 MinorKleine Sprachkorrektur: „no-bullshit“ mit Bindestrich schreiben.
In Line 19 sollte „no bullshit“ als zusammengesetztes Adjektiv mit Bindestrich geschrieben werden, damit die Formulierung konsistent und sauber ist.
✏️ Vorschlag
-1. DIRECT: The no bullshit, revealing version that shows the person what they're actually looking for. Only 8 words in extremely straightforward language. +1. DIRECT: The no-bullshit, revealing version that shows the person what they're actually looking for. Only 8 words in extremely straightforward language.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In @.opencode/skills/Utilities/Fabric/Patterns/find_female_life_partner/system.md at line 19, Update the phrase "DIRECT: The no bullshit, revealing version that shows the person what they're actually looking for. Only 8 words in extremely straightforward language." by hyphenating the compound adjective: replace "no bullshit" with "no-bullshit" so the line reads "DIRECT: The no-bullshit, revealing version..." to ensure correct compound adjective formatting for the phrase starting with "DIRECT:".
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In @.opencode/skills/Utilities/Fabric/Patterns/identify_dsrp_systems/system.md:
- Around line 39-44: Der Abschnitt mit den Leitfragen ist durch eine Einrückung
als Codeblock formatiert; entferne die führenden 4 Leerzeichen vor den Fragen
und wandle die Fragen in eine echte Markdown-Liste (z. B. mit "- " oder "1.")
um, füge eine leere Zeile über und unter der Liste ein, und stelle sicher, dass
der Trenner ("---") als separate Zeile erhalten bleibt, damit die Fragen als
strukturierte Liste und klar abgegrenzter Abschnitt im Dokument erscheinen;
überprüfe die Fragezeilen genau (z. B. "What is the overall system..." / "What
are its key components...") und passe nur die Einrückung/Marker an, nicht den
Textinhalt.
In @.opencode/skills/Utilities/Fabric/Patterns/predict_person_actions/system.md:
- Line 36: Der Header im Beispiel verwendet die falsche Groß-/Kleinschreibung:
ersetze das Token "***challenge***" durch exakt "***Challenge***" im
System-Header des Files (suche nach "***challenge***" im Inhalt von system.md)
so dass das Pattern-Format konsistent bleibt; überprüfe und passe ggf. weitere
Vorkommen des Header-Tokens im Dokument an.
- Line 10: Korrigiere den Tippfehler und den fehlerhaften Header-Marker in der
Eingabe-Spezifikation: ersetze das Wort "seperated" durch "separated" und ändere
die fehlerhafte Markdown-Markierung "***Challenge**" auf "***Challenge***" so
dass die Anleitung klar angibt, dass die beiden Abschnitte durch den Header
"***Challenge***" getrennt sind; passe den Satz mit den Header-Namen
"***Psychodata***" und "***Challenge***" entsprechend an.
- Around line 13-14: Replace the malformed sentence in system.md about
trait-challenge interactions: fix typos ("paradocixcally" → "paradoxically"),
remove stray fragments ("inhibit the or", "/s?)"), and clarify the meaning by
rewriting to something like: "When traits conflict, methodically weigh which
trait is dominant and how the conflict affects the response — for example,
whether it inhibits the reaction, paradoxically amplifies it, or triggers
alternative behaviors via tension or defense mechanisms." Also tighten the
following sentence to read clearly about considering traits as a whole (the
psychological structure) and refining the prediction relative to the challenge.
---
Duplicate comments:
In
@.opencode/skills/Utilities/Fabric/Patterns/find_female_life_partner/system.md:
- Line 19: Update the phrase "DIRECT: The no bullshit, revealing version that
shows the person what they're actually looking for. Only 8 words in extremely
straightforward language." by hyphenating the compound adjective: replace "no
bullshit" with "no-bullshit" so the line reads "DIRECT: The no-bullshit,
revealing version..." to ensure correct compound adjective formatting for the
phrase starting with "DIRECT:".
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
Run ID: 969d88e1-b137-447b-857f-38e41582e4ab
📒 Files selected for processing (4)
.opencode/skills/Utilities/Fabric/Patterns/find_female_life_partner/system.md.opencode/skills/Utilities/Fabric/Patterns/identify_dsrp_systems/system.md.opencode/skills/Utilities/Fabric/Patterns/predict_person_actions/system.md.opencode/skills/Utilities/Fabric/Patterns/raycast/extract_primary_problem
- identify_dsrp_systems: convert 4-space-indented questions (accidental code block) to proper markdown list with blank lines around it and preserved --- separator - predict_person_actions: fix 'seperated'→'separated', '***Challenge**' →'***Challenge***' on line 10; rewrite lines 13-14 fixing 'paradocixcally', 'inhibit the or', '/s?)' stray fragments; fix '***challenge***'→'***Challenge***' in example on line 36 - find_female_life_partner: hyphenate 'no-bullshit' compound adjective
There was a problem hiding this comment.
♻️ Duplicate comments (1)
.opencode/skills/Utilities/Fabric/Patterns/identify_dsrp_systems/system.md (1)
54-58:⚠️ Potential issue | 🟡 MinorEinrückung erzeugt unbeabsichtigt einen Codeblock im Antwortteil
Die Zeilen sind aktuell als Codeblock gerendert. Bitte als normale Liste (oder Fließtext) formatieren, damit die Anweisungen korrekt strukturiert bleiben.
Vorgeschlagene Korrektur
- Identify key systems and subsystems, considering their purpose and interactions. - Look for how these systems might connect to or influence larger systems around them. These could be technological, social, regulatory, or even cultural. - Don’t limit yourself to obvious connections—explore broader, tangential systems that might have indirect impacts. - Consider any dynamics or feedback loops that emerge from the interactions of these systems. How do they evolve over time? +- Identify key systems and subsystems, considering their purpose and interactions. +- Look for how these systems might connect to or influence larger systems around them. These could be technological, social, regulatory, or even cultural. +- Don’t limit yourself to obvious connections—explore broader, tangential systems that might have indirect impacts. +- Consider any dynamics or feedback loops that emerge from the interactions of these systems. How do they evolve over time?🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In @.opencode/skills/Utilities/Fabric/Patterns/identify_dsrp_systems/system.md around lines 54 - 58, Die aktuellen Zeilen beginning with "Identify key systems and subsystems, considering their purpose and interactions." are rendered as a code block due to leading indentation; remove the leading spaces (or any fenced code markers) and reformat these lines as a normal Markdown list or plain paragraphs (e.g., prefix with "-" or remove indentation) so the instructions render as regular list items/flowing text instead of a code block; locate the block by the exact phrases "Identify key systems and subsystems..." and "Consider any dynamics or feedback loops..." and adjust their indentation/formatting accordingly.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Duplicate comments:
In @.opencode/skills/Utilities/Fabric/Patterns/identify_dsrp_systems/system.md:
- Around line 54-58: Die aktuellen Zeilen beginning with "Identify key systems
and subsystems, considering their purpose and interactions." are rendered as a
code block due to leading indentation; remove the leading spaces (or any fenced
code markers) and reformat these lines as a normal Markdown list or plain
paragraphs (e.g., prefix with "-" or remove indentation) so the instructions
render as regular list items/flowing text instead of a code block; locate the
block by the exact phrases "Identify key systems and subsystems..." and
"Consider any dynamics or feedback loops..." and adjust their
indentation/formatting accordingly.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
Run ID: c61112a3-9d16-4c6b-84ea-7c8baaa0ca60
📒 Files selected for processing (3)
.opencode/skills/Utilities/Fabric/Patterns/find_female_life_partner/system.md.opencode/skills/Utilities/Fabric/Patterns/identify_dsrp_systems/system.md.opencode/skills/Utilities/Fabric/Patterns/predict_person_actions/system.md
🚧 Files skipped from review as they are similar to previous changes (1)
- .opencode/skills/Utilities/Fabric/Patterns/find_female_life_partner/system.md
PR-05: Fabric Patterns Ko–Pr → Utilities/Fabric/
Part 5 of 12 in the PAI-OpenCode v3.0 migration from
devtomain.What
Relocates 130 Fabric pattern files (Ko through Pr range) to their new canonical location under
.opencode/skills/Utilities/Fabric/Patterns/.Patterns included (selection)
label_and_rate,official_pattern_template,provide_guidanceextract_*family (wisdom, ideas, insights, predictions, references, etc.)improve_*family (writing, academic_writing, prompt, report_finding)rate_*family (content, value, ai_response, ai_result)create_*family (threat_scenarios, ttrc_graph, upgrade_pack, video_chapters)explain_*family (code, docs, math, project, terms)find_*,fix_*,generate_*,get_*\*,heal_,humanize,identify_`recommend_*,refine_*,review_*,solve_*,suggest_*Context
Jira
WARNEX-79
@coderabbitai Review für Korrektheit, OpenCode-Konformität, und verbleibende Claude→OpenCode Probleme
Summary by CodeRabbit
Versionshinweise
New Features
Documentation