Trader Memory Core
tradermonty/claude-trading-skills
Track investment theses across their lifecycle — from screening idea to closed position with postmortem.
Turn any source that describes how a kind of task gets done (a SKILL.md, a chat log, a runbook, plain prose) into a runnable Morph trace.
$ npx skills add AIScientists-Dev/Flowtrace --skill make-trace -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install AIScientists-Dev/Flowtrace make-trace --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/AIScientists-Dev/Flowtrace.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/make-trace .claude/skills/make-trace && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "make-trace" agent skill from https://github.com/AIScientists-Dev/Flowtrace/tree/main/skills/make-trace into .claude/skills/make-trace/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "make-trace", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/AIScientists-Dev/Flowtrace/tree/main/skills/make-traceType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add AIScientists-Dev/Flowtrace --skill make-trace -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install AIScientists-Dev/Flowtrace make-trace --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/AIScientists-Dev/Flowtrace.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/make-trace .agents/skills/make-trace && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "make-trace" agent skill from https://github.com/AIScientists-Dev/Flowtrace/tree/main/skills/make-trace into .agents/skills/make-trace/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "make-trace", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add AIScientists-Dev/Flowtrace --skill make-trace -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install AIScientists-Dev/Flowtrace make-trace --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/AIScientists-Dev/Flowtrace.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/make-trace .cursor/skills/make-trace && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "make-trace" agent skill from https://github.com/AIScientists-Dev/Flowtrace/tree/main/skills/make-trace into .cursor/skills/make-trace/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "make-trace", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/AIScientists-Dev/Flowtrace.git --path skills/make-trace--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add AIScientists-Dev/Flowtrace --skill make-trace -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install AIScientists-Dev/Flowtrace make-trace --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/AIScientists-Dev/Flowtrace.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/make-trace .gemini/skills/make-trace && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "make-trace" agent skill from https://github.com/AIScientists-Dev/Flowtrace/tree/main/skills/make-trace into .gemini/skills/make-trace/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "make-trace", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install AIScientists-Dev/Flowtrace make-traceInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add AIScientists-Dev/Flowtrace --skill make-trace -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/AIScientists-Dev/Flowtrace.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/make-trace .github/skills/make-trace && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "make-trace" agent skill from https://github.com/AIScientists-Dev/Flowtrace/tree/main/skills/make-trace into .github/skills/make-trace/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "make-trace", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add AIScientists-Dev/Flowtrace --skill make-trace -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install AIScientists-Dev/Flowtrace make-trace --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/AIScientists-Dev/Flowtrace.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/make-trace .opencode/skills/make-trace && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "make-trace" agent skill from https://github.com/AIScientists-Dev/Flowtrace/tree/main/skills/make-trace into .opencode/skills/make-trace/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "make-trace", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
make-traceTurn any source that describes how a kind of task gets done (a SKILL.md, a chat log, a runbook, plain prose) into a runnable Morph trace.
Make Trace is an agent skill from AIScientists-Dev/Flowtrace. Turn any source that describes how a kind of task gets done (a SKILL.md, a chat log, a runbook, plain prose) into a runnable Morph trace. Lift it into a DAG, write a contract per step, place inputs, and drive the full run lifecycle to verify it. Use whenever someone wants to make a trace from a source.
Its SKILL.md is about 3.7k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files, including reference files (for example `references/CLI.md`).
It sits in DevOps & Cloud, covering Runbooks and postmortems. The repository describes itself as: Run a task with AI as a flow of steps you keep, reuse, and refine, not a one-off chat. The licence is MIT.
7 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 1571c76. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
gitjqFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use git, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Make Trace loads about 3.7k tokens when it runs, and up to ~8.1k if it reads all its reference files. Until then it costs about 79 tokens; SKILL.md has 1,985 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from AIScientists-Dev/Flowtrace at commit 1571c76, republished under its MIT licence (© AIScientists-Dev). 1,985 words, ~3,734 tokens.
.claude/skills/make-trace/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.You turn a source (anything that describes how a kind of task gets done) into a trace: a folder holding a DAG that a human and an AI both read while the work runs. This skill covers the whole path, from a blank folder to a finished run.
Two reads give you the full surface. Do them once:
references/CLI.md (bundled next to this file) is the system contract: every command, the trace.json schema, the reply payload schema, the path rules, the state machine.The flowtrace binary drives everything. Get it in this order: honor $TRACE_BIN if it is set; else use it if it is on your PATH; else, inside a flowtrace checkout, use the build under target/ (target/release/flowtrace, else target/debug/flowtrace) or build one with ./scripts/install.sh from the repo root; else clone the repo first (git clone https://github.com/AIScientists-Dev/Flowtrace.git) and run its ./scripts/install.sh. Building needs Node and Rust and takes a few minutes the first time — it builds the web UI and the CLI and symlinks flowtrace to ~/.local/bin. When you forget a shape mid-task, the binary self-documents: flowtrace <cmd> --help, and flowtrace explain <type> (e.g. flowtrace explain trace, flowtrace explain reply).
cd <wherever you keep traces> # conventionally ~/traces/
flowtrace init <slug> # creates <slug>/ with .git and an empty trace.jsonflowtrace init makes a subfolder named <slug> under the current directory, not in place.
Read the source and pull out the steps hiding in it. Fill trace.json#steps, and for each step set from_steps, its upstream dependencies. The DAG is the whole point: decide what runs in parallel and what fans in.
The arrows are the knowledge. A source often reads as a flat list, but the real shape is a fan-in/fan-out graph. Do not flatten it into a straight line. Common patterns: independent ingests run as parallel roots and fan in at a join; an analysis branch and a recommendation branch fan out from the same join; the final write-up fans in from everything. Some sources are honestly sequential, though; a step-by-step creative pipeline really is a straight line, and forcing fake parallelism onto it is its own kind of unfaithful. Lift the shape that is actually there.
What becomes a node vs. folded into a STEP.md. Promote something to its own step only if it is a distinct cognitive move with its own input and output. If it is how to do an existing step (a rule, a special case, a reference detail), fold it into that step's STEP.md instead. This is the criterion that keeps a 25-file source from exploding into 25 nodes.
Mutually-exclusive paths are not one trace. If the source branches on input into paths that produce different deliverables (make a film or a deck or a prototype), that is several traces sharing an early spine, not one trace full of conditionals; traces describe shape, not control flow. Split on the deliverable. Same deliverable reached by a different internal pipeline is still one trace, though; branch inside a STEP.md, not in the DAG. Split on the deliverable, not on method.
Then check it:
flowtrace validate
flowtrace show --fmt mermaidLifting is judgment, and judgment flattens fan-in/fan-out graphs into straight lines that are wrong. Have a second, independent pass (a fresh agent is ideal) compare your DAG against the source: does every step appear, is every dependency real, was anything dropped or invented? Fix what it finds. This catches the mistakes you cannot see in your own lift.
If you cannot spawn a fresh agent, do it cold yourself: set your DAG aside, re-read the source from scratch, re-derive the edge list independently, then diff that against what you built. Reconcile every difference before moving on.
Each step gets a steps/<id>/STEP.md: a short Markdown file with optional YAML frontmatter on top and prose below. The frontmatter reads/writes show up in the UI; the body says how to do the step. Fold cross-cutting guidance (do's/don'ts, special cases) into the steps they affect.
---
name: score_bullets
description: Score each resume bullet against the keywords.
reads:
- extract_keywords/keywords.json
- resources/resume_before.md
writes:
- bullet_scores.json
---
# Score Bullets
Read the keywords and the parsed resume, then score every bullet 0 to 1 by
relevance and note the gap on each. Scoring is judgment, not keyword counting.A run's inputs are plain files. There is no inputs field. Drop the input files in the trace's resources/ folder, and point the relevant step's reads: at them. Paths in reads:/writes: are written relative to the trace root: a resource reads as resources/<file>, an upstream step's asset as <step_id>/<file>.
Each CLI write makes one git commit. For every step: mark it running, produce its asset on disk, mark it done with that asset, and emit a structured reply. Then close the deliverable.
The reply is how each step shows its work — write it rich, not bare. A bare { "headline", "status" } renders as a lonely title and wastes the step. Before you write replies, read the schema instead of writing from memory: flowtrace explain reply lists the top-level fields, and flowtrace explain reply.evidence lists the typed evidence blocks and each block's own options (e.g. a figure's caption). Use what they document and match the reply to what the step actually produced. Skipping this read is the single most common reason a reply lands as just a title with nothing under it.
RUN=$(flowtrace run new --name "first run" | tail -1)
flowtrace step <id> running --message "..."
# ... do the step's work; write its asset under runs/$RUN/<id>/ ...
flowtrace step <id> done --asset <file>
flowtrace reply < reply.json
# ... repeat for every step, then:
flowtrace deliverable done --asset <step_id>/<final-output>
flowtrace run show # confirm every step is done and the deliverable is doneflowtrace serve # opens the DAG at http://localhost:3000A finished trace is a method, not a one-off: run it again on new input and you reuse the structure instead of rebuilding it. The plan stays put — trace.json and the STEP.md contracts do not change. You start a fresh run and regenerate the contents inside it.
Inputs are files, not declared variables: from_inputs and a step's reads: are cosmetic labels for the UI, never consumed at runtime. So reuse is four moves — recover the plan, open a new run, swap the input files, drive the lifecycle again.
0. Recover the plan. If you did not build this trace, you do not know its step IDs, their order, or each step's asset filename — and the snippets below are all placeholders (<id>, <file>, <step_id>). Read them off the trace, don't guess:
flowtrace show --fmt json | jq -r '.steps | keys[]' # the step IDs (unordered)
flowtrace show --fmt mermaid # the edges — drive steps in dependency order, roots firstEach step's declared asset filename is trace.json#steps.<id>.assets; the deliverable's asset list (run-relative paths) is trace.json#deliverable.assets — reuse the same set when you close the deliverable. The body of each steps/<id>/STEP.md tells you what that asset should contain.
RUN=$(flowtrace run new --name "<new instance>" | tail -1) # a fresh, isolated runresources/ that this run should change — a trace often has more than one input, and swapping only some silently mixes new and old (the CLI never reads these files, so it cannot warn you). The CLI only ever commits state.json and declared assets, never your input files — so commit them yourself if you want the new input in the history:git add resources/ && git commit -m "swap inputs: <new instance>"--run "$RUN" on every write (step, reply, and deliverable all take it). Pass it every time: omit it and the CLI targets the most recently created run, which is your new run only until any other run appears — then an un---run'd write lands in the wrong run with no error. For each step: mark it running (the step folder need not exist yet), then write its asset under runs/$RUN/<id>/, then done --asset (which fails if the file is not on disk), then emit a reply. Then close the deliverable.flowtrace step <id> running --run "$RUN" --message "..."
mkdir -p "runs/$RUN/<id>"
# ... regenerate the step's asset at runs/$RUN/<id>/<file> from the new input ...
flowtrace step <id> done --asset <file> --run "$RUN" # --asset is step-relative: just <file>
flowtrace reply --run "$RUN" < reply.json
# ... every step in dependency order, then close with the deliverable's own asset set:
flowtrace deliverable done --asset <step_id>/<final-output> --run "$RUN" # --asset is run-relative hereRuns are isolated: each runs/<run_id>/ carries its own assets and state.json, so a new run never disturbs an earlier one. flowtrace run list shows them side by side, and every prior run's outputs stay exactly as they were. (Re-entering a step within one run to redo it, after changing your mind about a node, is a different move — steering, covered next.)
Steering is the other half of a live run: you changed your mind about a step and want that change to flow through, without starting over. It stays inside the same run — done is not final, so you re-enter the step and re-run only what depended on it. (Reuse opens a new run for new input; steering edits a node within one run.)
The CLI does not track staleness for you — the trace is soft, you own propagation. Ask it for the exact set to re-run — show reads the static plan, so it takes no --run:
flowtrace show --downstream <id> # the step's transitive dependents, in topological order--run "$RUN" (the run you are steering; omit it for the latest):flowtrace step <id> running --run "$RUN" --message "why you changed it"
# ... rewrite runs/$RUN/<id>/<file> ...
flowtrace step <id> done --asset <file> --run "$RUN"
flowtrace reply --run "$RUN" < reply.jsonRe-run the downstream, front to back. Walk the --downstream list in the order it printed (it is topologically sorted) and re-run each one the same way — every step in it was computed from the old output and is now stale.
Re-confirm the deliverable. It is not in --downstream and carries no staleness signal, so once a steer changes the final output, close it again:
flowtrace deliverable done --asset <step_id>/<final-output> --run "$RUN"The full state-machine rules live in references/CLI.md § "Re-running and steering".
A source does not have to be prose written ahead of time. A task you (or an agent) just finished is also a source, often the best one, because the topology is given: you already walked the dependency edges, so you transcribe a graph instead of inferring one. The cycle above still applies, with three shifts:
trace.json and the STEP.md bodies (no product names, no one-off values); the concrete outputs become the assets of run #1, not part of the method. (A step's does should read condense the cleaned draft into a thread, not condense the Redis-to-NVMe post into a thread.)trace.json and each STEP.md asking "would this read the same for the next instance?"runs/<id>/<step_id>/, not producing them again.The run's concrete input becomes a file in resources/, pointed at by the root step's reads: (see step 5). If the run's steps each called a skill, name that skill in the step's STEP.md; the trace is the composition layer, and its nodes still call the moves.
flowtrace step --asset is step-relative (resolved under runs/<id>/<step_id>/, so --asset out.md). flowtrace deliverable --asset is run-relative (<step_id>/out.md). An evidence[].path inside a reply is run-relative too. One file, three forms.{ "headline": "...", "status": "..." }. Add checkpoint.step_id to bind it to a step; add evidence[] for figures, tables, checks, or citations. flowtrace explain reply and flowtrace explain reply.evidence list every field. The --output example skeleton is bare; build richer replies from flowtrace explain reply or references/CLI.md section 6.STEP.md files and your input files are not assets, so the run lifecycle never commits them. Commit them yourself if you want them in the history.lint such a sink node as orphan_step; that is benign for a node whose asset is in the deliverable.A trace is the composition layer above individual moves, drawn as a visible, steerable DAG. The right topology for a given source is judgment, made in step 2; step 3 exists to check it. Everything else here is mechanical.
© AIScientists-Dev, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 1 other file (references) in skills/make-trace of AIScientists-Dev/Flowtrace.
Open the folder on GitHubat commit 1571c76
Make Trace next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Make Trace this skillAIScientists-Dev/Flowtrace | 485 | — | ~3.7k | Automated safety check: Pass | MIT | |
| Trader Memory Coretradermonty/claude-trading-skills | 3k | 2 repos | ~4.3k | Automated safety check: Pass | MIT | |
| Author Migrationnrwl/nx | 29k | — | ~12k | Automated safety check: Notes | MIT | |
| Write Notes Like Deepseekczm15053/write-notes-like-deepseek | 477 | — | ~1.9k | Automated safety check: Pass | None | |
| OpenRig Upgrade Proceduremvschwarz/openrig | 5.5k | — | ~2.9k | Automated safety check: Pass | Apache-2.0 | |
| GreptimeDB Release RunbookGreptimeTeam/greptimedb | 6.7k | — | ~1.4k | Automated safety check: Pass | Apache-2.0 |
tradermonty/claude-trading-skills
Track investment theses across their lifecycle — from screening idea to closed position with postmortem.
nrwl/nx
Author or scope a first-party Nx migration. An agent skill from nrwl/nx.
czm15053/write-notes-like-deepseek
A skill your agent uses when a change is non-trivial by DSH standards (behavior, architecture, cross-file contracts, process/tooling, testing strategy, or on-disk/wire/config formats), when choosing…
mvschwarz/openrig
Walks an agent through upgrading the OpenRig CLI and daemon one observed step at a time, keeping live seats alive and reconciling managed plugin files.
GreptimeTeam/greptimedb
Runbook for publishing a GreptimeDB version: pick the release branch, verify the Cargo version, then tag, create the GitHub release and open the docs note PR.
henryqin1997/statem
A skill your agent uses when a long coding or research task should be managed with statem state-machine runbooks, including creating specs, starting or resuming runs, checking current state…
Categories
Turn any source that describes how a kind of task gets done (a SKILL.md, a chat log, a runbook, plain prose) into a runnable Morph trace. Make Trace is an agent skill from AIScientists-Dev/Flowtrace.md, a chat log, a runbook, plain prose) into a runnable Morph trace.
Make Trace fits situations like: someone wants to make a trace from a source; tasks that involve Runbooks and postmortems.
Run `npx skills add AIScientists-Dev/Flowtrace --skill make-trace -a claude-code`. Or copy the skill folder (skills/make-trace in AIScientists-Dev/Flowtrace) into .claude/skills/make-trace in your project. Claude Code loads it when a task matches its description.
Run `npx skills add AIScientists-Dev/Flowtrace --skill make-trace -a codex`. Or copy the skill folder (skills/make-trace in AIScientists-Dev/Flowtrace) into .agents/skills/make-trace in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add AIScientists-Dev/Flowtrace --skill make-trace -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/make-trace, .gemini/skills/make-trace, .github/skills/make-trace and .opencode/skills/make-trace in your project.
Going by SKILL.md and its folder, Make Trace needs the command-line tools its instructions call (git and jq).
SKILL.md contains no URLs. Its commands use git, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Make Trace is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 3.7k tokens (SKILL.md is roughly 15k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 4.3k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Make Trace: Trader Memory Core (tradermonty/claude-trading-skills, 3k stars), Author Migration (nrwl/nx, 29k stars), Write Notes Like Deepseek (czm15053/write-notes-like-deepseek, 477 stars) and OpenRig Upgrade Procedure (mvschwarz/openrig, 5.5k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
AIScientists-Dev (a GitHub organization) maintains it in AIScientists-Dev/Flowtrace, which has 485 GitHub stars. The repository was last updated on June 9, 2026.
Source: AIScientists-Dev/Flowtrace on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.