where-am-i

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

where-am-i

where-am-i

Render the task's decisions as an ASCII tree. The point is orientation: show the path already settled, mark the active fork, and end with the exact questions left to answer.
将任务的决策渲染为ASCII树。核心作用是定位:展示已确定的路径,标记当前活跃的分支,并列出剩余需要回答的具体问题。

How to render

渲染方式

Read the current state from the conversation, then draw a single tree.
  • Root = the task in one short phrase.
  • [N]
    numbers top-level decisions only, in the order they arose; sub-decisions stay unnumbered. The closing list references these
    [N]
    tags.
  • Q:
    lines at each fork, stating the question being decided there.
  • Indent sub-decisions under the option that produced them.
从对话中读取当前状态,然后绘制一棵完整的树。
  • 根节点 = 用简短短语描述的任务。
  • [N]
    仅为顶层决策编号,按决策出现的顺序排列;子决策不编号。末尾的列表会引用这些
    [N]
    标签。
  • Q:
    在每个分支处标注该行,说明当前分支需要决策的问题。
  • 将子决策缩进在产生该子决策的选项下方。

Markers

标记符

Attach a marker after the node with a
◄──
connector (
node  ◄── ✅ chosen
), as the example shows. Use this one form for every marker.
  • — a decided node; append a terse why/result in parentheses.
  • 📍 YOU ARE HERE
    — the single active fork, the decision in question right now. Use it once per tree.
  • not taken
    — an option considered and rejected.
  • (not started)
    — a decision that exists but hasn't been reached yet.
  • Keep settled branches visible (collapsed to one line, not deleted) so the user sees the path behind them, not only what is ahead.
在节点后添加标记,使用
◄──
连接符(如
node  ◄── ✅ chosen
),示例如下。所有标记均采用此格式。
  • — 已确定的节点;在括号内简要说明原因/结果。
  • 📍 YOU ARE HERE
    — 当前唯一活跃的分支,即当前需要处理的决策。每棵树仅使用一次。
  • not taken
    — 已考虑但被否决的选项。
  • (not started)
    — 已存在但尚未推进到的决策。
  • 已确定的分支需保持可见(折叠为一行,而非删除),以便用户了解已完成的路径,而不仅仅是前方的内容。

Always end with

结尾要求

A numbered "Open questions, in order" list below the tree. Include only the undecided nodes, ordered the way they need answering. Reference each by its
[N]
tag so the user can point back at the tree.
在树下方添加编号为**“待解决问题(按顺序)”**的列表。仅包含未决节点,按需要回答的顺序排列。每个问题需引用对应的
[N]
标签,方便用户对照树状图查看。

Example

示例

deploy pipeline rework
├─ [1] runner image          Q: pin or float?
│   ├─ pin to :1.4    ◄── ✅ chosen (reproducible CI)
│   └─ float :latest  ◄── not taken
├─ [2] cache strategy   ◄── 📍 YOU ARE HERE
│   │   Q: per-branch or shared?
│   ├─ shared ──┐  Q: evict by age or size?
│   │           ├─ age
│   │           └─ size
│   └─ per-branch
└─ [3] rollout   ◄── (not started)
        Q: canary or all-at-once?

Open questions, in order:
1. [2] cache strategy — shared or per-branch?
2. [3] rollout — canary or all-at-once?
deploy pipeline rework
├─ [1] runner image          Q: pin or float?
│   ├─ pin to :1.4    ◄── ✅ chosen (reproducible CI)
│   └─ float :latest  ◄── not taken
├─ [2] cache strategy   ◄── 📍 YOU ARE HERE
│   │   Q: per-branch or shared?
│   ├─ shared ──┐  Q: evict by age or size?
│   │           ├─ age
│   │           └─ size
│   └─ per-branch
└─ [3] rollout   ◄── (not started)
        Q: canary or all-at-once?

Open questions, in order:
1. [2] cache strategy — shared or per-branch?
2. [3] rollout — canary or all-at-once?

Rules

规则

  • One tree per render. Redraw the whole thing each time rather than patching it.
  • Alignment is approximate — don't chase perfect columns; readability beats pixel-perfect spacing.
  • Keep node labels short; detail goes in the parenthetical or the questions list.
  • Do not invent decisions. Only show forks that actually came up in the task.
  • If every decision is settled, render the full tree (all
    ) and write
    Open questions: none
    . If no decision has come up yet, say so in one line instead of drawing a tree.
  • No files, no state. The conversation is the source of truth.
  • 每次渲染生成一棵完整的树。每次都重新绘制整棵树,而非局部修改。
  • 对齐无需绝对精确——不必追求完美的列对齐;可读性优先于像素级的间距。
  • 节点标签需简洁;详细信息放在括号内或问题列表中。
  • 不得凭空创建决策。仅展示任务中实际出现的分支。
  • 若所有决策均已确定,渲染完整的树(全部标记为
    )并标注
    Open questions: none
    。若尚未出现任何决策,则用一句话说明,无需绘制树状图。
  • 不涉及文件,不保存状态。对话内容为唯一的信息来源。