Input
Selected meta-agent role (requirements_analyst):
# Rolle: Requirements-basierter Prompt-Review-Analyst
Du bist die Schnittstelle zwischen der Qualitätsprüfung und dem Task-Agenten,
der einen bestehenden Prompt verbessert. Du überführst die Befunde des
Prüfberichts in eindeutige, nachvollziehbare und überprüfbare Änderungen an
den Vorgaben des Task-Agenten.
Du änderst weder den geprüften Ausgangsprompt noch den erzeugten
Kandidaten-Prompt direkt. Du änderst ausschließlich die Anweisungen im
Prompt-Design-Agenten, damit dessen nächster Kandidat die belegten
Schwachstellen gezielt behebt.
## Verbindliches Vorgehen
Für jeden relevanten Prüfbefund:
1. Ordne ihn einer konkreten Stelle oder Regel im geprüften Prompt zu.
2. Trenne beobachteten Befund, nachweisbare Ursache und erforderliche Änderung.
3. Kennzeichne eine nicht belegbare Ursache als „nicht eindeutig bestimmbar“.
4. Leite nur Änderungen ab, die durch den Prüfbericht begründet sind.
5. Formuliere das gewünschte Verhalten so, dass es in der nächsten Prüfung
überprüft werden kann.
6. Erhalte bestehende Anforderungen, die der Änderung nicht widersprechen.
7. Nutze ältere Generationsartefakte, wenn sie die Rückverfolgbarkeit einer
Änderung verbessern oder eine bereits erfolglose Änderung erkennen lassen.
Vermeide Vermutungen über die Absicht des Prompt-Autors, unbelegte Ursachen,
allgemeine Forderungen wie „klarer formulieren“ und eine vollständige
Neufassung des Prompts. Der Prüfbericht darf frei formuliert sein; maßgeblich
sind seine nachvollziehbaren Befunde und Hinweise, nicht eine starre Liste von
Feldern.
You are improving the prompt-generation strategy for Prompt Evolution.
Parent generation:
gen_000
Target generation:
gen_001
Latest evaluation:
Overall score: 90/160
Normalized score: 56.25%
Detailed evaluator report:
{
"rubric": {
"title": "Bewertungsschema für einen Prompt zur ETF-Portfolioanalyse",
"application": "Ein Assistenzmodell soll anhand eines vom Nutzer gemeinten ETF-Portfolios eine nachvollziehbare, sachlich begrenzte Analyse erstellen oder zunächst die dafür nötigen Angaben einholen.",
"scientific_basis": "Die 100 anwendungsspezifischen Punkte messen die inhaltliche Eignung des Prompt-Textes für eine ETF-Portfolioanalyse. Bestand, Streuung und Risiko erhalten zusammen 68 Punkte, weil ohne diese Kernbereiche die Analyse wesentliche Eigenschaften des Portfolios verfehlen kann. Kosten und Ergebnisdarstellung ergänzen den Nutzwert. Die drei mit je 20 Punkten gewichteten Zusatzkriterien prüfen getrennt die Durchführbarkeit: Ablauf, Umgang mit Zwischenständen und Eingabeverarbeitung. Diese Trennung erhöht die Inhaltsvalidität und verhindert, dass dieselbe Schwäche mehrfach zählt. Binäre, am Prompt-Text erkennbare Teilmerkmale machen die Bewertung wiederholbarer; weder spätere Modellantworten noch unbekannte Portfoliodaten werden bewertet. Auch eine knappe, für die einfache Anfrage angemessene Regelung kann volle Punkte erhalten.",
"criteria": [
{
"id": "portfolio_structure",
"name": "Bestand und Portfolioaufbau",
"max_points": 24,
"definition": "Geprüft wird, ob der Prompt die gewünschte Darstellung des ETF-Bestands und seines Aufbaus festlegt. Nicht bewertet werden die Bereitstellung oder Gültigkeit von Bestandsdaten, die Diversifikationsdiagnose oder der Arbeitsablauf.",
"scoring_guide": "Je 8 Punkte für eine ausdrückliche Anforderung, (1) die enthaltenen ETF-Positionen zu erfassen, (2) ihre Anteile am Gesamtportfolio darzustellen und (3) die Zusammensetzung nach einer benannten, sachlich geeigneten Dimension wie Anlageklasse oder Region aufzuschlüsseln. 0 Punkte ohne eines dieser Merkmale; Teilpunkte als Summe der erfüllten Merkmale; 24 Punkte bei allen drei Merkmalen. Allgemeine Wörter wie „analysiere“ zählen nicht als ausdrückliche Anforderung.",
"weight_rationale": "24 Punkte, weil Bestand und Gewichtung den Gegenstand jeder weiteren Portfolioanalyse bestimmen."
},
{
"id": "diversification_overlap",
"name": "Streuung und Überschneidungen",
"max_points": 24,
"definition": "Geprüft wird, ob der Prompt eine Untersuchung von Konzentration und möglicher Überschneidung der ETF-Exposures verlangt. Die bloße Auflistung der Positionen, erforderliche Eingangsdaten und Risikokennzahlen gehören nicht hierher.",
"scoring_guide": "Je 8 Punkte für eine ausdrückliche Anforderung, (1) Konzentrationen im Portfolio zu prüfen, (2) Überschneidungen zwischen ETFs oder ihren zugrunde liegenden Anlagen zu prüfen und (3) die tatsächliche Streuung über mindestens eine benannte Exposuredimension wie Regionen, Branchen oder Emittenten zu beurteilen. 0 Punkte ohne eines dieser Merkmale; Teilpunkte als Summe; 24 Punkte bei allen drei Merkmalen.",
"weight_rationale": "24 Punkte, weil mehrere ETFs trotz ihrer Anzahl ähnliche Anlagen abdecken können; die Prüfung dieser Möglichkeit ist für den Anwendungsfall zentral."
},
{
"id": "risk_return",
"name": "Risiko und Wertentwicklung",
"max_points": 20,
"definition": "Geprüft wird, welche Analyse von Verlustrisiken und Wertentwicklung der Prompt verlangt und ob Aussagen an einen geeigneten Zeitraum beziehungsweise eine Datengrundlage gebunden werden. Datenbeschaffung und Eingabeprüfung werden ausschließlich unter input_processing bewertet; Konzentration und Überschneidungen gehören zum vorigen Kriterium.",
"scoring_guide": "Je 5 Punkte für eine ausdrückliche Anforderung, (1) Verlustrisiken zu betrachten, (2) Wertentwicklung oder Rendite zu betrachten, (3) für zeitabhängige Aussagen einen Betrachtungszeitraum zu benennen oder zu verlangen und (4) die Aussagekraft historischer Ergebnisse gegenüber künftigen Ergebnissen einzugrenzen. 0 Punkte ohne eines dieser Merkmale; Teilpunkte als Summe; 20 Punkte bei allen vier Merkmalen.",
"weight_rationale": "20 Punkte, weil Risiko und Rendite für die Einordnung eines Portfolios wesentlich sind, konkrete Aussagen aber ohne Zeitbezug und Grenzen leicht irreführen."
},
{
"id": "costs_taxes",
"name": "Kosten und steuerliche Grenzen",
"max_points": 16,
"definition": "Geprüft wird, ob der Prompt laufende ETF-Kosten, mögliche Transaktionskosten und den zulässigen Umgang mit steuerlichen Aussagen thematisiert. Ob Kostenwerte oder Steuerangaben als Eingaben vorliegen und wie sie validiert werden, gehört ausschließlich zu input_processing.",
"scoring_guide": "Je 4 Punkte für eine ausdrückliche Anforderung, (1) laufende ETF-Kosten zu berücksichtigen, (2) gegebenenfalls Transaktionskosten von laufenden Kosten zu unterscheiden, (3) die Kostenwirkung auf das Portfolio einzuordnen und (4) steuerliche Aussagen nur mit passendem Kontext zu treffen oder andernfalls als nicht bestimmbar zu kennzeichnen. 0 Punkte ohne eines dieser Merkmale; Teilpunkte als Summe; 16 Punkte bei allen vier Merkmalen.",
"weight_rationale": "16 Punkte, weil Kosten die Anlageergebnisse beeinflussen, während steuerliche Aussagen ohne Kontext begrenzt werden müssen. Beides ist wichtig, aber gegenüber Aufbau und Risiken nachgeordnet."
},
{
"id": "findings_actions",
"name": "Verständliche Ergebnisse und Handlungsgrenzen",
"max_points": 16,
"definition": "Geprüft wird die verlangte Form der abschließenden Einordnung für den Nutzer. Fachliche Einzelanalysen, Regeln zur Erhebung persönlicher Angaben und die Reihenfolge der Arbeitsschritte werden nicht hier bewertet.",
"scoring_guide": "Je 4 Punkte für eine ausdrückliche Anforderung, (1) wesentliche Befunde verständlich zusammenzufassen, (2) Stärken und Schwachstellen getrennt erkennbar zu machen, (3) mögliche nächste Schritte als bedingte Optionen statt unbegründeter Kauf- oder Verkaufsvorgaben zu formulieren und (4) individuelle Empfehlungen an bekannte Anlageziele und Risikotoleranz zu binden oder bei deren Fehlen darauf zu verzichten. 0 Punkte ohne eines dieser Merkmale; Teilpunkte als Summe; 16 Punkte bei allen vier Merkmalen.",
"weight_rationale": "16 Punkte, weil eine Analyse erst durch verständliche und angemessen begrenzte Ergebnisse nutzbar wird; die fachlichen Grundlagen werden bereits höher gewichtet."
},
{
"id": "process_architecture",
"name": "Nachvollziehbarer Analyseablauf",
"max_points": 20,
"definition": "Geprüft wird, ob sich aus dem Prompt ein angemessener Ablauf vom Beginn der ETF-Portfolioanalyse bis zum Ergebnis ableiten lässt, einschließlich sinnvoller Abhängigkeiten, Entscheidungen und Fehlerwege. Nicht bewertet werden Eingabeform und -gültigkeit, die Speicherung von Zwischenständen oder die fachliche Vollständigkeit einzelner Analysen. Eine bestimmte technische Umsetzung oder feste Ablaufstruktur wird nicht verlangt.",
"scoring_guide": "Je 5 Punkte, wenn der Prompt erkennbar regelt, (1) womit die Bearbeitung beginnt, (2) dass Auswertungen erst nach den dafür nötigen Grundlagen erfolgen, (3) ob bei unzureichender Grundlage nachgefragt, begrenzt fortgefahren oder angehalten wird und (4) welches Ergebnis nach ausreichender Grundlage geliefert wird. 0 Punkte ohne eine solche Regel; Teilpunkte als Summe; 20 Punkte bei allen vier Regeln. Kurze, eindeutige Regeln genügen.",
"weight_rationale": "20 Punkte als eigenständiges Durchführbarkeitskriterium: Ein fachlich ambitionierter Prompt bleibt unzuverlässig, wenn Entscheidungen und Fehlerwege im Ablauf offen sind."
},
{
"id": "state_architecture",
"name": "Zwischenstände und Fortsetzung",
"max_points": 20,
"definition": "Geprüft wird, ob für eine gegebenenfalls mehrteilige Portfolioanalyse relevante Zwischenstände, Fortschritt und Übergänge sowie Abbruch und Wiederaufnahme ausreichend bestimmbar sind. Nicht bewertet werden die Inhalte der Eingaben, die fachlichen Analyseziele oder die Reihenfolge der Arbeitsschritte. Es wird keine Speicherung oder bestimmte Zustandsimplementierung verlangt; bei einer einfachen Bearbeitung genügt eine entsprechend einfache Regel.",
"scoring_guide": "Je 5 Punkte für eine erkennbare Regel dazu, (1) ob Angaben beziehungsweise Analyseergebnisse bereits vorliegen oder noch ausstehen, (2) wann vom Warten auf Angaben zur Auswertung beziehungsweise zum Ergebnis gewechselt wird, (3) wann die Bearbeitung wegen fehlender Grundlage endet oder pausiert und (4) wie nach nachgereichten oder korrigierten Angaben fortgesetzt wird. 0 Punkte ohne solche Regeln; Teilpunkte als Summe; 20 Punkte bei allen vier Regeln.",
"weight_rationale": "20 Punkte, weil Nachfragen bei diesem knappen Anwendungsfall naheliegen und ohne klare Fortsetzungsregeln Angaben übergangen oder Analysen fälschlich als abgeschlossen behandelt werden können."
},
{
"id": "input_processing",
"name": "Eingaben und Umgang mit Lücken",
"max_points": 20,
"definition": "Geprüft wird, welche Angaben für die ETF-Portfolioanalyse benötigt werden, wie ihre Form und Gültigkeit bestimmt sind und wie fehlende oder widersprüchliche Angaben behandelt werden. Nicht bewertet werden gewünschte Analyseergebnisse, Ablaufentscheidungen nach der Eingabeprüfung oder Zwischenstände. Ersatzannahmen müssen kenntlich und sachlich begründet sein; fehlende Tatsachen dürfen nicht als Fakten erfunden werden.",
"scoring_guide": "Je 4 Punkte, wenn der Prompt erkennbar (1) die nötigen Portfolioangaben wie ETF-Identifikation und Positionsgrößen benennt, (2) eine verwendbare Form oder Bezugsgröße für Positionsangaben festlegt, (3) Gültigkeit und Widersprüche der Angaben prüfen lässt, (4) den Umgang mit fehlenden Angaben festlegt und (5) Ersatzannahmen nur gekennzeichnet und begründet zulässt sowie das Erfinden fehlender Tatsachen ausschließt. 0 Punkte ohne eines dieser Merkmale; Teilpunkte als Summe; 20 Punkte bei allen fünf Merkmalen.",
"weight_rationale": "20 Punkte, weil aus einer bloßen Bitte ohne belastbare Portfoliodaten keine konkrete Analyse ableitbar ist. Getrennte Prüfmerkmale machen diese zentrale Eingabeanforderung messbar."
}
]
},
"evaluation": {
"rubric_id": "292fb60c9d826979",
"criterion_scores": [
{
"id": "portfolio_structure",
"points": 8,
"evidence": "Die „Verteilung nach Anlageklassen, Regionen und Branchen“ ist ausdrücklich zu prüfen. ETFs und Beträge oder Gewichtungen werden als Eingaben erfragt; eine Darstellung der einzelnen Positionen und ihrer Anteile am Gesamtportfolio wird nicht ausdrücklich verlangt.",
"improvement": "Verlange eine Übersicht aller ETF-Positionen mit ihrem jeweiligen Anteil am Gesamtportfolio."
},
{
"id": "diversification_overlap",
"points": 24,
"evidence": "Der Prompt verlangt ausdrücklich die Prüfung von „Konzentrationsrisiken“, „Überschneidungen zwischen ETFs“ und der Verteilung nach Anlageklassen, Regionen und Branchen.",
"improvement": "Keine"
},
{
"id": "risk_return",
"points": 0,
"evidence": "Konzentrationsrisiken werden bereits als Streuungsfrage erfasst. Darüber hinaus verlangt der Prompt weder eine Betrachtung von Verlustrisiken oder Wertentwicklung noch einen Zeitraum für zeitabhängige Aussagen. „Keine Renditegarantien“ grenzt historische Ergebnisse gegenüber künftigen Ergebnissen nicht ausdrücklich ein.",
"improvement": "Verlange eine zeitlich eingeordnete Betrachtung von Verlustrisiken und, soweit Daten vorliegen, Wertentwicklung; stelle klar, dass historische Ergebnisse keine künftigen Ergebnisse vorhersagen."
},
{
"id": "costs_taxes",
"points": 4,
"evidence": "„Kosten“ werden allgemein genannt, aber laufende ETF-Kosten, Transaktionskosten und deren Wirkung auf das Portfolio nicht ausdrücklich unterschieden oder eingeordnet. Steuerliche Details dürfen nicht erfunden werden; fehlende Informationen sind kenntlich zu machen.",
"improvement": "Nenne laufende ETF-Kosten ausdrücklich, unterscheide gegebenenfalls Transaktionskosten und verlange eine Einordnung ihrer Wirkung."
},
{
"id": "findings_actions",
"points": 12,
"evidence": "Eine „kurze Gesamtbewertung“, „Stärken“ und „mögliche Risiken“ sind vorgesehen. Die Passung zu Anlagehorizont und Risikobereitschaft soll geprüft werden; fehlende Angaben sind nachzufragen und allgemeine Hinweise nicht als individuelle Anlageberatung darzustellen. „Konkrete Punkte zur Überprüfung“ sind jedoch nicht ausdrücklich als bedingte Handlungsoptionen formuliert.",
"improvement": "Formuliere mögliche nächste Schritte ausdrücklich als von den festgestellten Befunden und persönlichen Angaben abhängige Optionen."
},
{
"id": "process_architecture",
"points": 20,
"evidence": "Die Bearbeitung beginnt mit den bereitgestellten Angaben. Fehlende wichtige Informationen sollen gezielt erfragt werden; eine vorläufige Analyse ist nur vorgesehen, wenn sie trotzdem möglich ist. Für die Analyse gibt der Prompt sowohl Prüfbereiche als auch eine Ergebnisstruktur vor.",
"improvement": "Keine"
},
{
"id": "state_architecture",
"points": 10,
"evidence": "„Falls Angaben fehlen“ unterscheidet vorhandene von ausstehenden Angaben. Die Bedingung für eine vorläufige Auswertung ist benannt. Nicht geregelt ist, wann die Bearbeitung mangels Grundlage pausiert oder endet und wie nach nachgereichten oder korrigierten Angaben fortgesetzt wird.",
"improvement": "Lege fest, dass ohne ausreichende Grundlage zunächst auf Angaben gewartet wird und dass nach Nachreichungen oder Korrekturen die betroffenen Teile der Analyse aktualisiert werden."
},
{
"id": "input_processing",
"points": 12,
"evidence": "ETF-Identifikation, jeweilige Beträge oder Gewichtungen sowie Anlagehorizont und Risikobereitschaft werden erfragt; für fehlende Angaben ist Nachfragen vorgesehen. Eine Prüfung auf ungültige oder widersprüchliche Angaben fehlt. Annahmen sollen gekennzeichnet, aber nicht ausdrücklich begründet werden; das Erfindungsverbot nennt nur ETF-Daten, aktuelle Kurse und steuerliche Details.",
"improvement": "Verlange eine Prüfung auf Widersprüche und ungültige Angaben. Erlaube Ersatzannahmen nur gekennzeichnet und begründet und untersage das Erfinden sämtlicher fehlender Portfoliotatsachen."
}
],
"total_score": 90,
"priority_fixes": [
{
"criterion_id": "risk_return",
"location": "Absatz mit den Analysebereichen",
"problem": "Eine eigenständige Betrachtung von Verlustrisiken und zeitlich eingeordneter Wertentwicklung fehlt.",
"change": "Ergänze diese Prüfungen samt Betrachtungszeitraum und Hinweis auf die begrenzte Aussagekraft historischer Ergebnisse."
},
{
"criterion_id": "portfolio_structure",
"location": "Absatz mit den Analysebereichen",
"problem": "Die Darstellung der einzelnen ETF-Positionen und ihrer Portfolioanteile wird nicht verlangt.",
"change": "Ergänze eine Positionsübersicht mit Anteilen am Gesamtportfolio."
},
{
"criterion_id": "input_processing",
"location": "Absatz zu fehlenden Angaben und Annahmen",
"problem": "Ungültige oder widersprüchliche Eingaben und die Begründung von Ersatzannahmen sind nicht geregelt.",
"change": "Lass Eingaben auf Plausibilität und Widersprüche prüfen; verlange Rückfragen bei Unklarheiten und begründete, gekennzeichnete Annahmen."
}
]
}
}
The evaluation and task context needed for this run are included here. Use the
parent generation artifacts when they help you understand what the current
agent produced and how it was evaluated.
This domain improves an existing source prompt instead of designing a prompt
from scratch. The generator should preserve the source prompt's core purpose
while improving clarity, robustness, operational rules, and consistency.
Translate supported evaluator findings into changes to the Task-Agent's
instructions in /home/USER/PromptEvolution/runs/sol6_brief_etf_portfolio_standard160_bestLast_260930/prompt_design_agent.py. Do not directly edit the source prompt or a
generated candidate prompt. The next Task-Agent run creates the revised
candidate from the changed instructions.
You may read:
- /home/USER/PromptEvolution/runs/sol6_brief_etf_portfolio_standard160_bestLast_260930/prompt_design_agent.py
- /home/USER/PromptEvolution/domains/prompt_design/source_prompts/brief_etf_portfolio.md
- files inside /home/USER/PromptEvolution/runs/sol6_brief_etf_portfolio_standard160_bestLast_260930/outputs/prompt_design/gen_000
- files inside /home/USER/PromptEvolution/runs/sol6_brief_etf_portfolio_standard160_bestLast_260930/outputs/prompt_design/gen_001/meta_workspace
You may edit:
- /home/USER/PromptEvolution/runs/sol6_brief_etf_portfolio_standard160_bestLast_260930/prompt_design_agent.py
You may freely create, edit, and remove files inside:
- /home/USER/PromptEvolution/runs/sol6_brief_etf_portfolio_standard160_bestLast_260930/outputs/prompt_design/gen_001/meta_workspace
If you want to reinterpret, summarize, or adapt the task for this run, write
that as a new artifact inside the workspace. Keep the source prompt
and all evaluation/report files unchanged.
Make an actual code change to /home/USER/PromptEvolution/runs/sol6_brief_etf_portfolio_standard160_bestLast_260930/prompt_design_agent.py. Do not merely describe changes.
TOOL PROTOCOL:
- Use exactly ONE tool per response.
- Tool calls MUST use exactly this format:
<json>
{
"tool_name": "...",
"tool_input": {...}
}
</json>
- Never use <function_calls>, <invoke_tool>, XML tool calls, or any other
tool-call syntax.
- Never simulate a tool result.
- Every editor call must include the absolute `path` inside `tool_input`.
- For `str_replace`, use `command`, `path`, `old_str`, and `new_str` together.
- If editor returns an error, correct the JSON and retry editor; do not switch
to bash, sed, or another editing method.
- Wait for the real tool result before making the next tool call.
After editing:
1. Inspect the changed files.
2. Finish with a short summary. The loop runs py_compile and validates the
patch after your response; no shell tool is available to you.
For this run the evolution scope is PROMPT ONLY.
Target file:
/home/USER/PromptEvolution/runs/sol6_brief_etf_portfolio_standard160_bestLast_260930/prompt_design_agent.py
Workspace:
/home/USER/PromptEvolution/runs/sol6_brief_etf_portfolio_standard160_bestLast_260930/outputs/prompt_design/gen_001/meta_workspace
STRICT CONSTRAINTS:
- Preserve generate_prompt(task: str) -> str.
- It must continue to return a Python string.
- Keep the existing single Task-Agent LLM call.
- Do not add runtime evaluator logic or extra model calls.
- Improve the prompt-generation strategy inside generate_prompt().
- Preserve the behavior that the Task-Agent improves an existing prompt and
does not replace it with an unrelated prompt.
IMPLEMENTATION PROTOCOL:
- Make exactly one small but meaningful improvement.
- First use editor view on the target file with `line_numbers: false`.
- Your first response must be this actual editor call, with no surrounding text:
<json>{"tool_name":"editor","tool_input":{"command":"view","path":"/home/USER/PromptEvolution/runs/sol6_brief_etf_portfolio_standard160_bestLast_260930/prompt_design_agent.py","line_numbers":false}}</json>
- Then use editor str_replace on a short exact substring copied verbatim from
the file you viewed.
- Copy only actual file text into `old_str` and `new_str`. Never add display
labels such as `15\t`, and never invent extra fields such as `new_str_2`.
- Prioritize the actual edit before exploration or documentation. Do not list
directories or create notes, reports, checklists, or summaries before editing.
- If an edit fails, use the real error and file contents to fix that edit next.
- Never assume a proposed tool call was executed. Only real tool results prove
that a change or validation happened.
- Do not replace the whole function or whole file.
- Do not use sed.
- After the edit, view the file again.
- The loop runs py_compile and patch validation after you finish. You do not
need to run either check yourself.
- Documentation is not required; prefer finishing immediately with a short
plain-text summary. Do not spend tools printing success messages.
- Reserve remaining tool calls for the edit, verification, and necessary fixes.
- Do not finish unless the target file actually changed.
SUGGESTED TOOL CYCLE:
1. editor view with `line_numbers: false`
2. editor str_replace
3. editor view to verify the real change
4. finish with a short plain-text summary (the loop performs py_compile)
Meta-Agent
<json>
{"tool_name": "editor", "tool_input": {"command": "str_replace", "path": "/home/USER/PromptEvolution/runs/sol6_brief_etf_portfolio_standard160_bestLast_260930/prompt_design_agent.py", "old_str": "and well-structured sections over broad or decorative language.\n\nDo not turn the source prompt into a different product.", "new_str": "and well-structured sections over broad or decorative language.\n\nFor an ETF-portfolio analysis prompt, preserve its existing diversification,\nworkflow, and tax safeguards while explicitly requiring: a position overview\nwith each ETF's portfolio share; loss risks and, where data permit, historical\nperformance with a stated period and a warning that past results do not predict\nfuture results; ongoing ETF costs distinguished from applicable transaction\ncosts and their portfolio impact. Require checks for invalid or contradictory\nportfolio inputs, clarification before relying on them, and only labeled,\njustified assumptions without inventing missing portfolio facts. If the basis\nis insufficient, pause for the missing details; after additions or corrections,\nupdate affected analysis. Frame next steps as options conditional on findings\nand known personal circumstances, not unconditional trades.\n\nDo not turn the source prompt into a different product."}}
</json>