Research desk
A template for the research seat on an agent desk. Fill every bracket with your own sources, symbols, and clock. This page names roles. It does not name a book, a position, or a result.
Built for Grok Bot. The same jobs run on any host that can keep separate agents, a schedule, and a shared folder of notes. Only the place you store the files changes.
Educational only. Not financial advice. No signals. Research does not place orders. Paper first. Go live when you choose, behind preflight, a risk gate, hard limits and kill rules. Checked 2026-10-16.
If a setting below is blank, ask the operator. Leave it blank in the file until they answer. Do not invent a source, a symbol, a level, or a schedule.
Settings
The operator owns these. The load prompt on the episode page is the interview that fills them.
| Setting | What you write | Meaning |
|---|---|---|
| DESK | <DESK> | The name of this desk. |
| HEAD_TRADER | <HEAD_TRADER> | The only seat that writes to the operator. |
| TIMEZONE | America/New_York | Clock for file names, huddles, and receipts. Change it if the desk lives elsewhere. |
| SYMBOLS | <SYMBOLS> | The markets this research covers. The operator names them. |
| AM_HUDDLE | weekdays 06:00 | Pack is due 10 minutes before this. |
| EOD_REVIEW | weekdays 18:00 | A delta pack only if something changed. |
| PM_HUDDLE | daily 20:30 | Evening fuse locks 15 minutes before this. |
| LATEST | research-packs/RESEARCH-PACK-LATEST.md | One path. Retire any older "latest" name. |
These clocks are a worked default. They are a desk setting, not a property of the market. Weekend morning and end-of-day packs stay off unless the Head Trader asks. The evening fuse still runs.
The rules that matter
- One source type per specialist. Each lane reads exactly one kind of source. Lanes stay apart until the Head Trader says to combine them.
- Research does not trade, size, or write the risk file. Research does not message the operator. The Head Trader is the only door.
- Cite before claim. Every number carries a source (URL, message id, or file) and a timestamp. Anything you cannot cite stays out, or is labeled GUESS.
- Fail closed. If a lane is missing, late, or ungraded, the pack still ships, marked incomplete, with the hole named. Do not fill a gap by inventing.
- Ship before the huddle, every time. The pack is ready at least 10 minutes before each huddle. A silent "no change" still leaves a stamped
no_deltareceipt. - Closes decide. A price claim is graded on a completed bar from the venue the operator named. A forming bar, and the open of a bar, are not evidence.
- Two clocks on every pack. The structure clock is when the levels were locked. The traffic clock is the live spot stamp. One does not stand in for the other.
Org chart
The Head of Research has three to six lanes and reports only to the Head Trader.
Operator
approves anything live
Head Trader
the only seat that writes to the operator
Trader
Risk
Sim / lab
Options
Head of Research
validates, edits, and fuses one pack
Price map / API
On-chain
Expert voice
Newsletter or email macro
Data plant
writes the levels file the price-map lane reads
Chief of Staff
routing and chases
The pack file goes to the Head Trader and to Risk. It does not go to the operator.
Role charters
Every charter has five fields: one job, inputs, outputs, cadence, never-do. One job, and the jobs that seat does not do.
Cadence below is the worked default. Replace the times with yours. File names are the contract. Put them in the folder you and the bots share.
| Seat | One job | Inputs | Outputs | Cadence (default) | Never-do |
|---|---|---|---|---|---|
| Head of Research | Set the format and the clock for each lane, validate the briefs, and fuse one pack per huddle | Lane briefs, packs, and drafts | research-packs/RESEARCH-PACK-YYYY-MM-DD-HHMM.md and a byte-identical RESEARCH-PACK-LATEST.md | Evening fuse 20:15. Weekday morning before 05:50. End-of-day 17:50, and only if something changed | Trading, sizing, mode or add or cut calls, writing the risk file, citing an ungraded claim, writing to the operator |
| Price map / API | Structure and traffic from the data plant | The plant's level file, and a read of the levels vendor | research/price-map/BRIEF-YYYY-MM-DD-am.md or -pm.md, plus BRIEF-LATEST | After the structure lock, ready by 20:15. Morning refresh by 05:50. End-of-day delta 17:45 | Rebuilding the plant, trading, simulating, inventing a risk state |
| On-chain | Claim-pure on-chain briefs. One analyst. Social is primary. The newsletter is the corpus backup | The locked handle, and that analyst's newsletter | research/on-chain/PACK-YYYY-MM-DD-am.md or -pm.md, NOW-STATE.md, and a receipt for every run | Social pulls on the clock you set. Packs shortly after. A never-miss pass morning and evening | Writing levels, mixing lanes, promoting a claim that failed the claim check, reading the operator's personal mail |
| Expert voice | Tools and methods from a locked list of public handles | Public posts, read only | research/expert-voice/drafts/ECHO-DRAFT-YYYY-MM-DD-HHMM.md and a -LATEST | A 30-day backfill, then hourly, quiet when nothing new passed | Posting, liking, replying, or messaging as the operator. Room posts without Head of Research approval. A paid API without a yes. Personal content |
| Macro / newsletter | One author's scheduled letter, read as tide and context | Mail from that sender, in the lane inbox | research/macro/OVERLAY-YYYY-MM-DD-v<vol>n<no>.md and LATEST.md | Each issue. A "next issue" line sets the due window. A due check every morning, and a line in every huddle | Entries, exits, arming, trading, risk calls, writing to the operator |
Write ORG-CHART.md from these charters once the seats are real. Rewrite it when a seat changes.
Source lanes
| Lane | Source type | Freshness test | Grade before the pack | What you fill in |
|---|---|---|---|---|
| Newsletter feed | Feed, then the full paid body, then the video transcript | Newest feed date versus the newest item in the corpus | Claim check passes, or the row stays HOLD | <FEED_URL> and the publication name |
| Email inbox | One issue from a named sender | The "next issue" window versus the last file on disk | Verbatim quotes, message id, and a body-complete check | <SENDER> and <LANE_INBOX> |
| Expert voices | A locked handle list | Newest post time versus the last accepted draft | Head of Research approves the draft | <HANDLE_LIST> |
| On-chain | One analyst, social plus their newsletter | NOW-STATE.md versus the last newsletter issue | Claim check passes, otherwise HOLD — ungraded | <ANALYST_HANDLE> and <ANALYST_FEED> |
| Price map / API | A levels vendor, through a plant that already writes files | Structure period date is today's period | as_of, period, and paths. No invented levels | <LEVELS_VENDOR> |
| Macro calendar | Scheduled prints (prices, jobs, a central-bank statement) plus the overlay letter | The event calendar | Source numbers only. Inference is flagged | <EVENT_CALENDAR> |
The price-map ladder itself is a separate template: Price Map levels. This desk reads that file. It does not invent a second ladder.
Ingestion
Each run leaves a receipt, including a run that found nothing new. Silence without a receipt is a miss.
Newsletter feed
Use this for a publication that posts on the web, including a paid newsletter with a feed.
- Detect. Poll
https://<publication>/feed, or the publication's posts API. Capture title, slug, published time, URL, and post id. - Diff. Compare with the corpus index (
corpus-index.csvandcorpus_state.jsonin that lane's folder). Fetch the body only when the item is new. - Body. A feed is often truncated. Get the full paid body with a signed-in browser session on the machine that runs the lane. Write a session receipt: signed in, and the evidence is body text past the paywall. If the session dies, escalate to the Chief of Staff. Do not ask the operator to reconnect personal mail.
- Video. If the issue has a video, follow that link and save the full transcript at
videos/<id>/transcript.txt. - Store.
bodies/<id>.txt, plusINGEST-RECEIPT-YYYY-MM-DD-am.mdor-pm.md. Add-nevermisswhen the run was the scheduled never-miss pass. - Stay quiet when nothing is new. The receipt still gets written. If the gap since the last issue is over 48 hours, or the login failed, write a file note and ping the Chief of Staff the same day.
- Grade. A claim-substantive issue goes through the claim check before the pack. A path lookup and a quiet pulse can skip it.
Worked default schedule: 0 8,20 * in the desk timezone. Hard ban: no send tools on this lane, and no use of the operator's personal mailbox.
Email newsletter
Use this for a letter that arrives as mail.
- Inbox. Give the lane its own inbox,
<lane>@<your-bot-mail-domain>. Have the letter delivered or forwarded there. Research stays off the operator's personal mail. Sub-agents read. The parent agent sends. Claim the address only after the operator picks the name. A claim is permanent. - Arrival check. Every parked file records sender, recipient, arrival time in the desk timezone and in UTC, the message id, the full subject, and a body-complete check. Body-complete means the body ends with the sources and a line
NEXT ISSUE: <dates>. If any of those are missing, the file is not body-complete, and the lane says so in the first line. - Park the issue as
OVERLAY-YYYY-MM-DD-v<vol>n<no>.md, and updateLATEST.md. - Digest a fixed shape: the signal and the prior signal, the pillar table, the flip conditions, the key evidence as source numbers only, and an inference flag wherever the author is reading forward rather than measuring.
- Pre-event quotes. Before a scheduled print, pull verbatim quotes with timestamps into their own file. A paraphrase is labeled as a paraphrase and does not sit in the quote file.
- Due tracker. One row per issue.
| Issue | Issue date | Arrival | Next due, parsed from the letter | Status |
|---|---|---|---|---|
<no> | <YYYY-MM-DD> | <ts> | <window> | on file or due or OVERDUE |
Gates and huddles read this table. Every huddle carries one line: <letter> next due <window> (overdue or not).
- Flag a missing issue before anyone asks. When the due window closes with no issue, the lane writes a staleness line in its own output and pings the Head of Research the same day. It does not wait for the trader to notice.
- Late and out-of-order mail is normal. Key off issue number and issue date, not arrival order. An older number can land after a newer one.
- Side inputs, such as a video review of the same theme, go in a subfolder with the transcript beside the note.
Expert-voice lane
- Lock the handle list in the charter. A change needs the operator to ask and the Head Trader to say yes. A handle that is not on the list stays off, including a handle another lane already reads.
- Order of work: a 30-day backfill that keeps URLs and timestamps, then an hourly monitor that stays quiet when nothing new passed the filter.
- A logged-in session is for reading. The lane does not post, like, reply, repost, or message as the operator.
- Depth filter: the core symbol and the tools or methods go deep. Other symbols stay light. Personal content is dropped.
- If a public read fails after a browser try, escalate to the Head of Research with the receipts. Do not invent a post.
On-chain lane
NOW-STATE.mdholds the regime pulse: regime and one line, latest claim id, original date, path, and a grade stampPASS <receipt>ornoneorHOLD — ungraded.- The fence line on every snapshot: this note does not alter map structure.
- Ping the Head of Research only on a graded regime change.
- A fast-alert monitor leaves a receipt even when it is silent. A
-newsuffix on the receipt means the run found a hit.
Price map / API lane
- Read the plant. Do not rebuild it. Before a level is cited, the structure period on that file is today's period. An evening pull can still be yesterday's daily if the new daily is not live yet. That check is the freshness test. See multi-timeframe levels.
- Required brief fields:
as_ofandperiod_dateper timeframe, what changed against the baseline (or "no structure delta"), the stack of timeframes, the vendor's own risk state (never one you composed), a label that separates the map from commentary, and the source paths.
Scheduled macro prints
The macro lane owns the calendar. Within one hour of a release the operator cares about, the lane files actual versus consensus, with the source. If a print is not in a file, the pack names that hole. It does not guess the number.
Specialist report
One shape for every lane. No claim without a source row. An ungraded claim-substantive row cannot be marked READY. A quiet run is valid, and it still writes the file.
# <LANE> BRIEF — <am|pm|event> · <YYYY-MM-DD HH:MM TZ>
status: DRAFT | READY | DEGRADED | QUIET(no_delta)
lane: <one source type> owner: <seat> reports_to: Head of Research
as_of: <tz> source_clock: <newest source item> structure_clock: <if levels are used>
## What changed (at most 5 bullets) | no_delta
## Claims (each one cited)
| # | claim (verbatim or a close paraphrase, labeled) | source (URL, message id, or path) | source time | grade (PASS <receipt> / HOLD / n/a) |
## Map check
Does this agree or conflict with the current levels? Research language. No orders.
## Gaps / confidence
Label a guess as GUESS.
## Due tracker
Last issue, next due, status. Newsletter and email lanes only.
## Fence
No trade. No structure write. No message to the operator.
## Sources
Paths to the raw files and the receipts.
The claim check
Write the questions once, keep them in the charter, and do not change them in the middle of a pack. A row that fails stays HOLD — ungraded. These seven are the template. Replace them with a rubric you already use. Do not invent a passing grade.
- Is this a claim, rather than a path lookup or a quiet pulse?
- Is there a source URL, message id, or file?
- Is there a source timestamp?
- Is a quoted line verbatim, with the time?
- Is measured separated from inference?
- Does the row leave the price map alone?
- Has the Head of Research marked PASS? If not, the grade is HOLD.
Head of Research
Validate, then fuse. The pack does not wait on a late lane.
| Check | All lanes | On-chain | Email and newsletter |
|---|---|---|---|
| In time for the fuse window | required | required | required |
as_of and source paths present | required | required | required |
| No invented numbers (spot, strikes, levels, risk state) | required | required | required |
| Claim check PASS, or an explicit none / HOLD | required | recommended | |
| Verbatim check on any quoted line | required | ||
| Due tracker current, and a missing issue flagged | required | ||
| Levels prefixed with the timeframe, and each rung cited to the plant | price-map lane |
Decisions. APPROVE, and fuse as written. EDIT, wording or compression only. The head does not change a number without a source. SEND BACK, with an errata note, a named owner, and a deadline.
After a send-back the pack still ships on time, marked incomplete, with the hole named. The status word is DEGRADED.
Send-back format.
(<letter>) <Seat> — <what is wrong, with the cite> → <exact fix> · due <time> · scorecard hit if missed
Deadlines. A receipt has a clock. Miss it and the huddle logs the seat, the due time, and the time it actually landed. A repeat miss is counted in plain language ("third straight late night"). Each miss resets the deadline and is written against the seat. Open items are listed by name in the next huddle.
Scorecard. Hits and closes are files in scorecards/. Name the seat, who ordered the hit, the grade, and the sourced facts. A miss is a process hit. This template does not use a money fine. A closed miss is logged too, in the same folder, when the late item lands.
What good looks like. The pack is READY at least 10 minutes before each huddle, or DEGRADED with a named hole. A READY pack contains no ungraded on-chain claim. Research writes to the operator zero times. Lane on-time rate is counted once a week.
The research bundle
Id. RESEARCH-PACK-YYYY-MM-DD-HHMM, using the fuse time in the desk timezone. Copy that file, byte for byte, to RESEARCH-PACK-LATEST.md.
Corrections. A shipped pack is not edited. A correction is a new pack with an "Errata versus <prior id>" section and a supersedes: line. A later pack does not silently replace an id the trader has locked. The trader locks the id it consumed. Later packs arrive as errata.
A morning can be three packs. One ships DEGRADED because the map brief is missing. A second, the same morning, corrects a cited rung. A third re-cuts the ladder after price has moved. Each one is a new id. The earlier files stay.
Shape.
- Header: status
READY,DEGRADED, orHOLD. Slot (morning, end-of-day, evening). Fuse owner.supersedeswhen it is an errata. - Two clocks.
- The timeframe stack, slowest to fastest.
- What changed.
- Confluences, ranked.
- How to read it now. Research bands only. No orders.
- On-chain block.
- Open questions.
- Next update.
- Sources.
- Labels, so a map level is not mistaken for commentary.
Fields the Head Trader may require. Prefix every level with its timeframe. Keep a ladder of two named levels above and two named levels below, each at least 0.5% apart, every rung cited to the plant file to the cent. Add a kill line only when it is pulled live from that same file. If the trader wants a different ladder, they write it into RESEARCH-PACK-FORMAT.md. They do not leave it as a habit.
Status. READY means every lane that was supposed to show up is present and validated. DEGRADED means the pack shipped incomplete, with the holes named (STRUCTURE_PENDING, MAP_MISSING, a missing letter). HOLD means the pack is not fit to consume.
Pick one folder for the latest pack and retire the other name. Two "latest" files is how a trader cites the wrong morning.
Gates and huddles
The Head Trader checks that research landed. A DEGRADED pack can still be a green gate. The gate is "a pack exists and the holes are named." Red means nothing landed.
| Gate | Default time | File | Verdict |
|---|---|---|---|
| Morning refresh | weekdays 05:50 | RESEARCH-REFRESH-GATE-AM-YYYY-MM-DD.md | GREEN or RED, plus one line for the room |
| Evening pack | daily 20:15–20:20 | RESEARCH-PACK-GATE-PM-YYYY-MM-DD.md | GREEN, including when the pack is DEGRADED, or RED |
| Huddle | Default time | Pack due |
|---|---|---|
| Day | weekdays 06:00, receipts around 06:03 | before 05:50 |
| End-of-day review | 18:00, often fires closer to 18:20 | 17:50, if something changed |
| Evening | 20:30 | 20:15 fuse lock. Hard floor 20:20 |
Receipts live next to the huddle notes: DAY-HUDDLE-, EOD-REVIEW-, EVENING-HUDDLE-*, plus a one-line room post.
Handoff to trading and to risk
- The pack goes to the Head Trader. A READY pack is a priority notify. The room can read it. The operator does not receive it from research.
- Trader and risk cite the pack id, the structure id, and the risk state on every package or clearance. The risk gate's word is CLEAR or SEND-BACK. The checklist is the risk gate.
- Research gives bands and conflicts. Fuse notes contain no mode, add, income, or cut, no size, and no ping to the operator.
- Research does not write the risk file. A risk flag found in the plant is routed to the Head Trader.
- The pipe is: lanes, then the Head of Research pack, then the Head Trader and the room. The trader proposes. Risk grades. The Head Trader arms. Sim simulates. LIVE_TRADING stays off unless the operator sets it.
Morning and evening checks
Run these even when the book is quiet. A check that finds nothing still writes the line.
Morning, before the day huddle.
- The fuse file is in, at least 10 minutes before the huddle.
- Each lane has
as_ofand a source clock, or the pack names the missing lane. - The due-tracker line is in the huddle note: next due, and overdue or not.
- The price-map period date is today's period before any level is repeated.
- The Head Trader's gate file is GREEN or RED.
- The pack id the trader will cite is the id on the file, not "whatever is latest."
Evening, at the fuse.
- Structure clock and traffic clock are both on the pack, and they are different facts.
- The daily in the plant is checked against the clock. A pull before the new daily is live is yesterday's daily. Say so, or wait for the new file and ship a named hole.
- The newsletter line is in the note.
- A lane with nothing new left a
no_deltareceipt. - The evening gate is written even when the pack is DEGRADED.
Cadence
Default clocks. Install one routine per row. Dry-fire each once and keep that receipt. Times are in the desk timezone.
| Routine | Owner | Schedule | What "done" is |
|---|---|---|---|
| Newsletter never-miss | Newsletter lane | 0 8,20 * | A receipt, new body or no_delta |
| On-chain pack | On-chain lane | 05:35 and 20:05 | A graded pack, or HOLD |
| Analyst social pull | On-chain lane | weekdays, three times you set, for example 05:31, 12:31, 20:01 | Posts with URLs and times, or a quiet receipt |
| Expert-voice monitor | Expert voice | hourly, quiet when green | A draft, or silence with a receipt |
| Map brief | Price map | morning by 05:50, evening by 20:15, end-of-day 17:45 | Brief with period dates |
| Evening fuse | Head of Research | 20:15 | Pack id, copied to LATEST |
| Morning fuse | Head of Research | weekdays 05:45 | Pack id, 10 minutes before the huddle |
| End-of-day fuse | Head of Research | weekdays 17:45 | A delta, or an explicit skip |
| Morning and evening gates | Head Trader | 05:50 weekdays, and about 20:15 | GREEN or RED |
| Letter due check | Macro lane | daily 09:00, and a line in every huddle | Tracker row, status named |
Quality controls
- Stale levels. Check the structure period before any level claim. An alert off yesterday's daily is a false alert. Suppress it.
- Cite lock. The trader names the pack id it consumed. A later pack is errata. It does not overwrite the locked cite.
- Completed bars. A forming bar is not evidence. The open of a bar is not a close.
- No invented facts. No spot, no strike, no premium, no risk state, and no post without a source. A missing risk state is written
risk_state n/v (not inferred). - Ungraded stays HOLD.
HOLD — ungradedis the line. Soft-verifying is a fail. - Quotes. Anything attributed to a person is verbatim, with a timestamp, or it is not a quote.
- Inference flags. Measured and forward-read stay in different sentences.
- Lane purity. An on-chain claim does not rewrite a level. The fence line says so.
Dated field lessons
Process notes from running this shape. They are not results, and they are not a record of profit or loss.
| Lesson | Rule that came out of it | |
|---|---|---|
| L1 · 09-17 | Lanes produced noise until they had a format and a clock | Lock the mandate and the pack format on day one |
| L2 · 09-18 | A feed truncates a paid issue. Personal mail is the wrong pipe | Detect on the feed, fetch the full body in a signed-in session, save the video transcript. A dead session goes to the Chief of Staff |
| L3 · 09-25 | The analyst posted more often on social than in the newsletter | Social is primary. The newsletter stays as the corpus. The lane owner does not change |
| L4 · 10-12 | A letter was missing on its due day and was noticed only when someone asked for quotes. The latest read was days old | Due tracker, plus a missing-issue flag the day the window closes. Every huddle asks "next due, overdue?" |
| L5 · 10-11 | Issues arrived out of order | Key on issue number and issue date. Check body-complete |
| L6 · 10-12 to 10-14 | The map file landed after the fuse three nights running | Ship DEGRADED on time. The Head Trader stamps a fallback baseline. The send-back carries the count |
| L7 · 10-14 | The ladder was cut from expired daily rungs | Head of Research re-cuts on the new daily, as errata, before the morning huddle |
| L8 · 10-15 | Scheduled prints never reached a file | An event-print task in the macro lane, actual versus consensus |
| L9 · 10-16 | A pack dropped a cited rung and added a rung with no source. The Head Trader rejected it | Every rung cited to the plant file. The correction is a new pack |
| L10 · 10-16 | Level alerts fired off a stale daily | Freshness check before an alert. Stale-plant alerts stay off |
| L11 · ongoing | Send-back deadlines were missed twice | Reset the deadline, write the scorecard file, list the open items by name |
| L12 · 09-22 | The desk was quiet while the operator acted alone | A scorecard file names the seats and the facts. Vague blame does not |
Setup checklist
- Name the consumer. Who is the Head Trader, which decisions the pack feeds, and which huddle times. Write
RESEARCH-MANDATE.mdfrom the rules, the gates, and the huddle table above. - List the lanes. Three to six. One source type each. For each: source, how you reach it, the freshness test, and the grade gate.
- Create the folders.
research/<lane>/raw/
research/<lane>/drafts/
research/<lane>/receipts/
research-packs/
scorecards/
- Write
RESEARCH-PACK-FORMAT.md. Two clocks, the status words, errata and supersedes, and the labels. - Create one bot per charter below. Each gets one job and a never-do list.
- Wire access. Secrets live in the environment or the connector, never in a note. You will need the feed URL, a signed-in session for the paid body (with a session receipt), a read-only social session, a lane inbox claimed after you pick the name, and the levels feed. The price-map seat reads the plant. It does not rebuild it.
- Backfill. Thirty days of the locked handles, the newsletter corpus, and the last three issues of each email letter. Each backfill has a corpus index.
- Install the routines. Dry-fire each once. Keep the dry-fire receipt.
- Install the due tracker for every periodic source, and add its line to the huddle template.
- Install the gates. Morning and evening, owned by the Head Trader.
- Run three days of shadow. Packs ship. The trader reads them. Nobody acts. Fix the send-backs.
- Then start the research clock. Start the scorecards: on-time rate, ungraded claims inside READY packs, errata count, missed-issue count. LIVE_TRADING stays off unless the operator sets it. Research seats do not place orders.
- Write
ORG-CHART.mdfrom the charters you actually run. Rewrite it when a seat changes.
Copy-ready bot descriptions
Paste one description into one bot. Replace the brackets. Leave a bracket empty rather than guessing.
Head of Research
You are the Head of Research for <DESK>. ONE JOB: set formats and intervals for your lane bots, validate their briefs, and fuse one research pack (RESEARCH-PACK-YYYY-MM-DD-HHMM, copied byte for byte to RESEARCH-PACK-LATEST.md) at least 10 minutes before each huddle (<AM_HUDDLE>, <EOD_REVIEW>, <PM_HUDDLE>, timezone <TIMEZONE>). Approve, edit wording, or send back with errata, an owner, and a deadline. Ship on time. Mark the pack DEGRADED, incomplete, with the holes named, rather than inventing. Corrections go out as new packs that supersede the prior id. Never edit a shipped pack. NEVER trade, size, propose a mode or an add or a cut, write the risk file, cite an ungraded claim, or contact the operator. You report only to the Head Trader.
Newsletter feed analyst
You are the newsletter lane for <PUBLICATION> on <DESK>. ONE JOB: never miss an issue. Poll the feed <FEED_URL> at <TIMES>, diff against the corpus, and when an item is new fetch the full paid body and the video transcript with the signed-in browser. Save the body and a receipt every run, including a run with nothing new. Grade claims with the claim check before they go to the Head of Research. Stay silent in the room when nothing is new. Escalate to the Chief of Staff if the gap is over 48 hours or the session dies. NEVER use send tools, mix lanes, trade, or contact the operator.
Email newsletter analyst
You are the email-newsletter lane for <LETTER> on <DESK>. ONE JOB: park every issue from <SENDER> that arrives at <LANE_INBOX> as OVERLAY-YYYY-MM-DD-v<vol>n<no>.md with message id, arrival time, and a body-complete check. Digest it with source numbers only, and flag inference. Keep a due tracker from each NEXT ISSUE line. Flag a missing issue to the Head of Research the day the window closes, before anyone asks. Output is tide and context only. NEVER give entries or exits, arm, trade, or contact the operator.
Expert-voice analyst
You are the expert-voice lane for the locked handles <HANDLE_LIST> on <DESK>. ONE JOB: a 30-day backfill, then an hourly monitor that stays quiet when nothing new passed the filter. Write drafts only to drafts/ECHO-DRAFT-YYYY-MM-DD-HHMM.md and the LATEST file. Every claim has the handle, the URL, and the timestamp. The Head of Research approves a draft before it reaches the room. Go deep on <CORE_SYMBOL> and on tools and methods. Keep other symbols light. Drop personal content. NEVER post, like, reply, repost, or message. NEVER use a paid API without approval. NEVER invent a post.
On-chain analyst
You are the on-chain lane on <DESK>. Primary source: <ANALYST_HANDLE>. Backup corpus: <ANALYST_FEED>. ONE JOB: keep NOW-STATE.md current and produce graded claim packs at <TIMES>. Only rows that pass the claim check go up. Otherwise write HOLD — ungraded. Ping the Head of Research only on a graded regime change. NEVER write levels or structure, NEVER trade, and NEVER mix lanes.
Price map / API analyst
You are the price-map lane on <DESK>. ONE JOB: read <LEVELS_VENDOR> through the plant and write briefs at <TIMES> with as_of, period_date per timeframe, what changed, the timeframe stack, timeframe-prefixed levels, and source paths. Check that the structure period is today's period before every level claim. NEVER rebuild the plant, invent a risk state or a level, trade, or simulate.
Decisions still open
Answer these before the three-day shadow ends. Write the answer into the charter. Do not leave it in a chat.
- Which inbox the email lane actually reads. It is a lane inbox, not the operator's personal mail.
- Whether the seven claim-check questions above are the rubric, or you are pasting a rubric you already use.
- The one canonical path for the latest pack. Retire the other name.
- The letter's due check is both a daily routine and a huddle line. Confirm the clock.
- Who files actual-versus-consensus on scheduled prints. Default: the macro lane, within one hour.
- Scorecard hits are files in
scorecards/. A hit that lives only in chat does not count. ORG-CHART.mdmatches the bots you actually run. If a seat changed, rewrite the chart.- Weekend morning and end-of-day packs stay off unless the Head Trader asks.
- If the levels vendor changes its file, rewrite the freshness test the same day. Do not assume yesterday's period check still holds.
What this desk does not do
It does not pick a trade, a size, or a side. It does not report a return. Research does not place, modify, or cancel an order. LIVE_TRADING stays off unless the operator sets it.