fix: accounting_quality tell + anchoring + routing clarification in prompts
Browse files- agent/prompts.py +9 -4
agent/prompts.py
CHANGED
|
@@ -211,12 +211,16 @@ The filing or transcript does not address a headwind, competitor move, or macro
|
|
| 211 |
**4. Emphasis shift (emphasis_shift)**
|
| 212 |
A KPI or metric that was prominently discussed in prior periods is absent or mentioned only briefly now. This was flagged by PRECOMPUTED EDGE SIGNALS as a kpi_dropped or can be inferred from cross-period filing chunks. A dropped KPI is often a metric that has stopped being favorable.
|
| 213 |
|
|
|
|
|
|
|
|
|
|
| 214 |
### Output rules for between_the_lines
|
| 215 |
|
| 216 |
**between_the_lines** (0-3 items, EMPTY LIST IS VALID):
|
| 217 |
-
|
|
|
|
| 218 |
- `observation`: what is literally said, present, or notably absent β one sentence, specific.
|
| 219 |
-
- `reading`: what this signals to an expert β what it conceals
|
| 220 |
- `signal_type`: exactly one of language_drift / qa_evasion / omission / emphasis_shift / accounting_quality.
|
| 221 |
- `implication`: the concrete forward-looking thing to monitor β one sentence starting with "Watch for" or "Monitor" or "If [X], then [Y]".
|
| 222 |
- `evidence`: SourcedFact with verbatim quote β€30 words.
|
|
@@ -484,8 +488,9 @@ def language_directive(language: str) -> str:
|
|
| 484 |
Write ALL prose / narrative fields in **{language}**. This includes:
|
| 485 |
`what_matters_most`, `non_obvious_takeaway`, `text` (in every list item),
|
| 486 |
`rationale`, `summary`, `headline`, `bullish_reading`, `bearish_reading`,
|
| 487 |
-
`language_shift`, `key_quote.text`, `actual_result`, `topic`,
|
| 488 |
-
string in `what_to_watch` and `evidence_notes`
|
|
|
|
| 489 |
|
| 490 |
The following fields MUST remain in **English** exactly as defined in the schema:
|
| 491 |
- Enum / controlled-vocabulary fields: `source` (10-K / 10-Q / transcript / news),
|
|
|
|
| 211 |
**4. Emphasis shift (emphasis_shift)**
|
| 212 |
A KPI or metric that was prominently discussed in prior periods is absent or mentioned only briefly now. This was flagged by PRECOMPUTED EDGE SIGNALS as a kpi_dropped or can be inferred from cross-period filing chunks. A dropped KPI is often a metric that has stopped being favorable.
|
| 213 |
|
| 214 |
+
**5. Accounting quality (accounting_quality)**
|
| 215 |
+
A beat driven by a tax rate drop, share count reduction, or below-the-line income rather than revenue or operating income improvement is a quality concern. Use only when get_financial_metrics returned effective_tax_rate, shares_diluted, or interest_income values that explain the beat mechanism. Do not apply when the beat was operationally driven.
|
| 216 |
+
|
| 217 |
### Output rules for between_the_lines
|
| 218 |
|
| 219 |
**between_the_lines** (0-3 items, EMPTY LIST IS VALID):
|
| 220 |
+
If the signal is a conflict between two present data points, it belongs in `analytical_tensions`. If it is about what is absent, evasive, or de-emphasized, it belongs here.
|
| 221 |
+
- Each item MUST be anchored to either: (a) a specific PRECOMPUTED EDGE SIGNAL (cite the SIG-n label, confirmed by at least one tool-retrieved chunk in this conversation), OR (b) a verbatim quote from transcript/filing cross-referenced with another source.
|
| 222 |
- `observation`: what is literally said, present, or notably absent β one sentence, specific.
|
| 223 |
+
- `reading`: what this signals to an expert β what it conceals, one sentence, no generic platitudes.
|
| 224 |
- `signal_type`: exactly one of language_drift / qa_evasion / omission / emphasis_shift / accounting_quality.
|
| 225 |
- `implication`: the concrete forward-looking thing to monitor β one sentence starting with "Watch for" or "Monitor" or "If [X], then [Y]".
|
| 226 |
- `evidence`: SourcedFact with verbatim quote β€30 words.
|
|
|
|
| 488 |
Write ALL prose / narrative fields in **{language}**. This includes:
|
| 489 |
`what_matters_most`, `non_obvious_takeaway`, `text` (in every list item),
|
| 490 |
`rationale`, `summary`, `headline`, `bullish_reading`, `bearish_reading`,
|
| 491 |
+
`language_shift`, `key_quote.text`, `actual_result`, `topic`, every
|
| 492 |
+
string in `what_to_watch` and `evidence_notes`, and `observation`, `reading`,
|
| 493 |
+
`implication` (in every `between_the_lines` item).
|
| 494 |
|
| 495 |
The following fields MUST remain in **English** exactly as defined in the schema:
|
| 496 |
- Enum / controlled-vocabulary fields: `source` (10-K / 10-Q / transcript / news),
|