ソース情報
- リポジトリ
- steel-dev/atlas
- ソースの最終更新活動
- 2026年6月17日 13:16
- 検出された SKILL.md の言語
- 英語
- スター
- 17
- フォーク
- 1
インストール方法
デフォルトでは、最初にソースを確認する Prompt が選択されています。直接コマンドに切り替えるか、ローカルコピーをダウンロードすることもできます。
ソースファイルを確認
インストールを決める前に、SKILL.md と SkillsMP に表示されている付属ファイルをお読みください。
メニュー
デフォルトでは、最初にソースを確認する Prompt が選択されています。直接コマンドに切り替えるか、ローカルコピーをダウンロードすることもできます。
インストールを決める前に、SKILL.md と SkillsMP に表示されている付属ファイルをお読みください。
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
直接コマンドでは確認用 Prompt が省略されます。実行前にソースを確認してください。
npx skills add https://github.com/steel-dev/atlas --skill atlas-optimizeコマンドは1行のまま表示されます。コピー前に横へスクロールして全体を確認してください。
ローカルで確認しますか?SkillsMP が現在取得できるファイルをダウンロードできます。
Run the local atlas CLI to produce a cited deep-research markdown report. Use when the user explicitly invokes atlas — e.g., `/atlas-research <question>`, "run atlas on X", "use atlas to research Y". Returns the markdown to the conversation along with the run summary. Do NOT use for casual questions Claude can answer from training/web — this spends the user's model-provider + Steel credits and takes 1–4 minutes.
Scaffold a domain-specific deep-research agent on the Atlas SDK. Use when the user wants to build or customize a research agent for a domain — medical, legal, financial, an internal API, a vector store — on top of @steel-dev/atlas, e.g. "build a research agent for X", "add a PubMed source to atlas", "make atlas search our internal docs". Generates a small module (instructions + domain tools + optional output schema) and smoke-tests it. Do NOT use to run a one-off query — that's atlas-research.
Diagnose the DRACO benchmark results for an atlas commit — figure out why
SOC 職業分類に基づく
SKILL.md を表示中
| name | atlas-optimize |
| description | Diagnose an atlas run's efficiency — find where wall-clock, model wait, and |
The efficiency counterpart to draco-analyze. That skill asks did the research
score well; this one asks where did the time and money go, and which function
should change.
It reads the trace --trace captures for a run: per-call / per-agent / per-phase
timing spans (with a compute-vs-gate-wait split), an automatic bottleneck
digest (critical path, phase + per-agent rollups, concurrency peaks, ranked
anomalies), and the byte-exact model transcript — every step's system prompt,
input thread, thinking, and tool calls. Crucially the digest carries an
attribution map (site → src/file.ts:fn), so every hot span points straight at
the code that owns it. That map is the whole reason this is a skill and not an
SDK feature: a finding maps to a file you can open and read.
A run only emits a trace when started with --trace. Traces land under
eval-runs/traces/<commit>/ (git-ignored), one pair of files per run:
<runId>.digest.json (small) and <runId>.trace.json (spans + transcript).
tsx examples/cli.ts "<question>" --trace full --effort balanced
--trace full = spans + verbatim transcript. --trace spans = the lighter
tier (timing + digest, no verbatim I/O) — enough for bottleneck work, cheaper
to keep.All reads go through tsx examples/trace.ts. The data is large, so the rule is
progressive disclosure: start at the digest, descend only as far as the
question needs. Never dump a full transcript blind — slice it.
tsx examples/trace.ts commits # commit dirs that have traces
tsx examples/trace.ts list [--commit SHA] # runs for a commit (default HEAD): wall/cost/waitRatio/peak/top anomaly
tsx examples/trace.ts digest <runId> # the bottleneck digest — START HERE
tsx examples/trace.ts spans <runId> [--kind model|tool|io|agent] [--grep RE]
tsx examples/trace.ts transcript <runId> [--role R] [--seq A-B] [--step N] [--grep RE] [--head N] [--messages]
Output is JSON (transcript renders text); parse it, don't echo it at the user.
If the user gave a runId, use it. Otherwise default to the current commit
(git rev-parse --short HEAD) and list its runs; say which you used. If the
commit has no traces, say so and offer to produce one. With several runs of the
same question, treat them as repeated samples — timing varies run to run.
tsx examples/trace.ts digest <runId>
Read off, in order:
criticalPath + criticalPathMs — the chain of spans that actually fills the
wall clock. This is where time went. Each entry carries its site.waitVsCompute — { computeMs, waitMs, ratio }. ratio ≫ 1 means most model
time was spent queued for the gate, not computing.concurrency — peakModelInFlight vs gateLimitModel. Peak pinned at the
limit and high wait ⇒ gate-starved.anomalies — pre-ranked by severity; each has a site and a detail.phaseBreakdown (keyed by site) and byAgent — where wall / compute / cost /
tokens concentrate. byAgent splits selfMs (own model time) from
subtreeMs (incl. children).topByWait / topByLatency / topByCost — the worst individual model calls.attribution — site → src/file.ts:fn. This is your jump table to code.| digest signal | likely cause | drill | fix lives in |
|---|---|---|---|
waitVsCompute.ratio high + peakModelInFlight == gateLimitModel | model-gate starvation — work oversubscribes the concurrency cap | spans --kind model, topByWait | src/config.ts (maxConcurrentModelCalls) + the fan-out flooding it |
high-wait anomalies clustered at one site | that phase queues behind everything else | spans --grep <site> | attribution[site] |
slow-step anomaly, low wait | model-bound: prompt too large or maxTokens too high | transcript --seq <n> --messages | attribution[site] |
redundant-call anomaly | identical fresh call issued >1× — duplicated spend | spans --grep <callKey8> | attribution[site] (missing memoization) |
tail-agent anomaly | one leaf agent is the long pole in a Promise.all | byAgent, transcript --role <agentId> | src/agent.ts / the spawn fan-out |
retry-storm anomaly | backoff from rate limits / 429s, not gate wait | spans --grep <site> | provider concurrency / src/config.ts |
large idleMs | serialization gap — an await that could overlap | criticalPath (look for idle jumps) | the awaiting call site |
one site dominates phaseBreakdown / topByCost | that phase is the spend driver | phaseBreakdown, transcript --role | attribution[site] |
Always resolve the file from the digest's own attribution map — don't guess the
filename from the site name.
tsx examples/trace.ts spans <runId> --kind model --grep verify # one phase's calls: waitMs, computeMs, cost
tsx examples/trace.ts transcript <runId> # summary: steps per role
tsx examples/trace.ts transcript <runId> --role lead # the lead's reasoning + tool calls
tsx examples/trace.ts transcript <runId> --seq 8-10 --messages # byte-exact input for a step range (large)
Use the transcript to answer what the aggregates can't: why is this call's prompt so big? what is this agent re-reading every step? did synthesis get handed redundant context? Then open the attributed source and read it before proposing anything.
Produce, for the user:
waitMs, share of criticalPathMs, costUSD), the root cause, and the
src/file.ts:fn it lives in (from attribution).file:line
and the change. Separate config fixes (a knob in config.ts, low-risk) from
structural fixes (a pipeline change — overlap awaits, memoize a call, trim a
prompt, rebalance fan-out).After a fix is applied (by the user, or in a normal edit turn — not under this skill), confirm it moved the needle:
tsx examples/cli.ts "<same question>" --trace full --effort <same>
tsx examples/trace.ts digest <newRunId>
Diff the new digest against the old: did criticalPathMs / modelWaitMs /
costUSD drop, did the anomaly clear, and where did the bottleneck move next
(it usually moves — name the new long pole)? If src/ changed, confirm
npm run test:run is green. Report before/after numbers, not just "fixed".
src/. Hand
off each fix as file:line + the change. If asked to apply it, do so in a
normal turn, not under this skill.digest; slice spans / transcript.
Never dump a whole transcript to reach a conclusion.status:"replayed"; the digest already excludes them from latency math — don't
re-introduce them as if they cost wall-clock.waitMs/computeMs,
the transcript line, or the file:line you cite. If the trace can't decide, say
what's missing (e.g. "this run was --trace spans; need full to see the
prompt").