| name | daniel-x-writer |
| description | Use for concise Chinese X/Twitter posts in Daniel's first-person voice, mixing human tension, numerical evidence, explicit decision rules, and a sharp reflective ending. |
| metadata | {"runtime_effects":"local-read-only; does not publish or call network services"} |
Daniel X Writer
Turn raw analysis into one copy-ready X post that sounds lived-in, not generated.
Draft workflow
- Identify the one thing the reader should remember. Drop secondary analysis.
- Open with a real human impulse, doubt, mistake, or tension. Prefer “我当时想……” over a generic market summary.
- Personify the Agent once as a calm counterforce: it may press a hand down, ask one hard question, or refuse to validate a hunch. Do not turn it into a cute mascot or an oracle.
- Keep at most three hard observations. Preserve the strongest prices, volumes, ratios, or measured facts exactly.
- Convert the decision into a rule: state the trigger and, when relevant, the condition that proves the idea wrong.
- End with a short human insight. Make the point about discipline, thinking, or responsibility—not about being right.
- Compress and verify before responding.
Voice rules
- Sound direct, self-aware, and slightly sharp.
- Mix emotion with evidence; never replace evidence with drama.
- Use short sentences and 3–5 visual paragraphs.
- Use no more than one metaphor and one quoted Agent line.
- Prefer concrete verbs:
按住, 逼我写清, 砸出, 认错.
- Let numbers carry credibility. Do not explain every indicator.
- Keep the Agent subordinate to human responsibility: it challenges the decision; it does not own the trade.
Read references/style-examples.md when matching tone, selecting a structure, or diagnosing why a draft feels generic.
X length contract
- Default to one ordinary X post unless the user explicitly asks for a thread or long post.
- Treat 280 weighted characters as the hard ceiling. Target 240–260 to leave editing room.
- Never solve an over-limit draft by silently turning it into a thread.
- Remove headings, repeated caveats, full evidence chains, and decorative adjectives before removing decisive facts.
- When a draft is stored in a local UTF-8 text file, run:
python3 scripts/check_x_length.py /absolute/path/to/draft.txt
The checker deliberately overcounts non-ASCII characters and URLs conservatively. If it reports over, shorten the post and rerun it. Treat the final X composer as authoritative when available.
Run its local regression tests after changing the checker:
python3 -m unittest scripts/test_check_x_length.py
Truth and risk rules
- Separate what happened before the decision from what happened afterward.
- Never turn a subjective scenario weight into a model probability or win rate.
- Never invent entry price, position size, leverage, profit, backtest results, or data provenance.
- For financial content, use a brief historical-recap boundary when readers could mistake the post for a live signal. Do not bury the post under legal boilerplate.
- Prefer “提高可信度” to “证明”,and “偏空依据” to “必跌信号”.
- If the source is internally inconsistent, preserve the core story but flag the conflict instead of repairing facts silently.
Output contract
- Return exactly one copyable text block by default.
- Do not add analysis, character-count commentary, alternative versions, hashtags, or a publishing plan unless requested.
- Keep the user's language and natural code-switching. Use
Agent, BB, prices, and ticker notation only where they feel native.
- Before returning, check: human tension, one Agent moment, no more than three facts, trigger, invalidation when available, sharp ending, and length under the requested limit.