by-design

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

By design

刻意设计原则

Read this rule first, because every step below serves it: one row per decision, and one question at most per reply.
This skill runs wherever Python 3.11 or newer and a shell are available. It uses the standard library only and needs no network access.
The name is the question this skill asks of every choice in a piece of work. Was it by design, or did it arrive with a template and stay?
This skill surfaces decisions rather than reviewing designs. Critique, choosing a direction, and shaping unmade work are the same act at three moments: after a decision, during it, and before it. So the job is one sentence. Find the decisions in this work, name what each one trades away, and say which ones nobody actually decided.
That last part carries the value. Weak design usually comes from choices nobody experienced as choices, such as a grid carried over from another page or a tone borrowed from a competitor.
请先阅读这条核心规则:以下所有步骤均围绕此展开:每个决策对应一行记录,每次回复最多包含一个问题。
该技能可在任何安装了Python 3.11或更高版本及Shell环境的环境中运行。仅依赖Python标准库,无需网络连接。
这个名称代表了该技能对每项工作中所有选择的核心疑问:它是刻意设计的结果,还是模板自带且未做调整的内容?
该技能的核心是梳理决策,而非单纯评审设计。评审设计、选择方向、打磨未落地方案本质上是同一行为的三个阶段:决策后、决策中、决策前。因此核心工作可总结为一句话:找出当前工作中的所有决策,明确每个决策的取舍,指出那些无人真正做出的选择。
最后这部分正是该工具的价值所在。薄弱的设计通常源于那些未被视为选择的默认选项,例如从其他页面沿用的网格布局,或是模仿竞品的语气风格。

Which commands does this skill accept?

该技能支持哪些命令?

CommandWhat it does
helpShow this table and one line per command.
watchDefault. Record decisions to the ledger and reply with one question at most.
judgeRead an existing screen, component, flow, or copy block and fill the ledger from it.
chooseLay out the trade-off between two or more directions and leave the choice open.
shapeOpen ledger rows as empty slots for work that does not exist yet.
auditTest which stated constraints in a brief are real and which are hardened choices.
askReturn the full slice of questions and leave the ledger untouched.
Run watch when the user names no command. Pick the posture from what arrives, using this table, and treat the user's words as stronger than the attachment.
What arrivesPosture
one artifact, such as a screenshot, a link, or a copy blockjudge
two or more options, or a stated forkchoose
intent alone, with nothing builtshape
a brief or a list of stated rulesaudit
a request for questions, phrased as give me or listask
命令功能描述
help显示此表格及每条命令的单行说明。
watch默认命令。将决策记录到账本中,回复最多包含一个问题。
judge读取现有界面、组件、流程或文案块,并从中填充账本内容。
choose列出两个或多个方向之间的取舍,将选择权留给用户。
shape在账本中创建空行,用于记录尚未落地的工作内容。
audit验证设计 brief 中所列约束哪些是真实需求,哪些是固化的选择。
ask返回完整的问题列表,不修改账本内容。
当用户未指定命令时,默认执行watch命令。根据收到的内容选择对应模式,以下表格可作为参考,且用户的描述优先级高于附件内容。
收到的内容模式
单个工件,如截图、链接或文案块judge
两个或多个选项,或明确的分支选择choose
仅包含意图,无已完成内容shape
设计 brief 或规则列表audit
以“给我”或“列出”开头的问题请求ask

How do I run this skill?

如何运行该技能?

Run every step in order. Each step names one action and the result it must produce. When a result differs from the one named, fix it and run that step again before moving on.
  1. Gate the request. Run
    python3 scripts/gate.py --text "<the request>"
    . A line starting with
    not-design
    ends the run here, and this skill contributes nothing to the reply. A line starting with
    design
    continues to step 1. Result: one verdict line, and on
    not-design
    no further step runs.
  2. Read the ledger. Run
    python3 scripts/ledger.py show --file decision-ledger-<slug>.md
    . Exit 1 means the ledger is new, so run
    python3 scripts/ledger.py init --file decision-ledger-<slug>.md --slug <slug>
    . Result: the file exists and you can list the decisions already in it.
  3. Name the posture in one clause, using the second table above. Result: a posture name you can write into the reply.
  4. Read the artifact for its coordinates. When the artifact is a picture, first write two lines: what this is, and what state it is in, choosing from populated, empty, error, loading, offline, disabled, or mid-flow. A picture carries its state and a description of a picture usually loses it, and the state is often the decision. Then run
    python3 scripts/locate.py --file <artifact>
    , or pass the request with
    --text
    , passing those state words to
    --hint
    when they matter. Result: a ranked list, each place carrying its score, how many terms earned it, and which ones. A
    weak read
    line on stderr means the ranking should not be trusted, either because one term carried the top place or because the top two are too close to separate. When it appears, name the artifact type yourself and run it again with
    --hint "<the words for what this is>"
    , which is how a discipline the vocabulary does not cover still lands.
  5. Pull the questions. Run
    python3 scripts/slice.py --category "<category>" --stage <stage> --match "<a noun from the artifact>" --limit 20
    . Result: exit 0 and a list of questions. Read stderr: a
    widened:
    line means the pin loosened, so say that in the reply. A match that finds only one or two questions loosens the other pins first and keeps the match, because the word from the artifact is the pin worth holding. A
    dropped match
    line means the shelf does not talk about your craft in your craft's words, so say that in the reply and write the rest of the rows from the work rather than from the slice. Pass
    --match
    with a word the artifact itself uses, because the category alone returns what is common rather than what is here.
  6. Group the questions into decisions. Several questions usually point at one choice. Turn every observation into the decision it implies before you drop it: an unlabelled grid is not a defect to mention, it is the decision nobody made about how the grid is read aloud. Result: a short list of decisions, each shorter than the list of questions, and nothing observed that has no row.
  7. Write one row per decision. Run
    python3 scripts/ledger.py add --file decision-ledger-<slug>.md --decision "<text>" --chosen "<text>" --trades "<text>" --risks "<text>" --origin <deliberate, inherited, or open>
    and, when a question from step 4 raised the row rather than the artifact,
    --source "<question id and url>"
    . Result: one appended line per decision, and a file that says which rows came from looking and which came from the library.
  8. Count what you wrote. Run
    python3 scripts/ledger.py count --file decision-ledger-<slug>.md --decision "<text>"
    , and
    show
    to count the rows and the inherited ones for the reply line. Result: numbers taken from a command rather than from memory, which step 10 then checks against the file.
  9. Ask the script whether to speak, and which row. Run
    python3 scripts/speak.py --file decision-ledger-<slug>.md --rank
    to order the inherited rows by how little is known about each, then run
    python3 scripts/speak.py --file decision-ledger-<slug>.md --decision "<the first ranked row>" --origin inherited --live yes
    . Result: an ordered list, then a line starting with ask or hold. Put one question in the reply when that line starts with ask.
  10. Draft the reply from assets/reply-template.md. Result: four lines, each filled.
  11. Check the draft. Run
    python3 scripts/check_reply.py --file <draft path>
    , adding
    --full-slice
    for the ask posture and
    --ledger-dir <folder>
    when the ledger does not sit beside the draft. This reads the ledger named in the reply and checks its counts against the file, so a number nobody ran fails here. Result: the line
    draft passed every rule
    . Any other line names what to fix, so fix it and run this again.
请按顺序执行以下每一步。每一步都指定了一个操作及其必须产生的结果。如果结果与预期不符,请修正后重新执行该步骤,再进行下一步。
  1. 请求校验。运行
    python3 scripts/gate.py --text "<请求内容>"
    。若输出行以
    not-design
    开头,则终止运行,该技能不生成任何回复。若输出行以
    design
    开头,则继续执行步骤1。结果:输出一行判定结果,若为
    not-design
    则不再执行后续步骤。
  2. 读取账本。运行
    python3 scripts/ledger.py show --file decision-ledger-<slug>.md
    。若退出码为1,表示账本是新的,需运行
    python3 scripts/ledger.py init --file decision-ledger-<slug>.md --slug <slug>
    。结果:账本文件已存在,且可列出其中已有的决策记录。
  3. 用一个短语指定模式,参考上述第二个表格。结果:得到一个可写入回复的模式名称。
  4. 读取工件的定位信息。如果工件是图片,首先写入两行内容:一是该工件的类型,二是其状态(可选状态包括:已填充、空态、错误、加载中、离线、禁用、流程中)。图片自身携带状态信息,而文字描述通常会丢失这些信息,且状态往往就是一个决策点。然后运行
    python3 scripts/locate.py --file <工件文件>
    ,或通过
    --text
    传递请求内容,当状态信息重要时,将状态词传入
    --hint
    参数。结果:生成一个排序后的列表,每个条目包含得分、匹配的术语数量及具体术语。若stderr输出
    weak read
    行,表示排序结果不可信,原因可能是单个术语占据榜首,或是前两名得分过于接近。出现此提示时,请自行指定工件类型,并添加
    --hint "<工件类型描述>"
    参数重新运行,以此确保即使词汇表未覆盖该领域,也能正确归类。
  5. 提取问题。运行
    python3 scripts/slice.py --category "<分类>" --stage <阶段> --match "<工件中的名词>" --limit 20
    。结果:退出码为0,并得到一个问题列表。请查看stderr输出:若出现
    widened:
    行,表示匹配范围已放宽,请在回复中说明这一点。如果仅找到1-2个问题,会先放宽其他限制条件并保留当前匹配项,因为工件中的词汇是最值得保留的匹配依据。若出现
    dropped match
    行,表示词汇库未覆盖该领域的专业术语,请在回复中说明这一点,并从工件本身而非提取的问题中补充剩余记录。请使用工件自身包含的词汇作为
    --match
    参数的值,因为仅指定分类会返回该分类下的通用内容,而非针对当前工件的特定内容。
  6. 将问题分组为决策。多个问题通常指向同一个选择。在丢弃任何观察结果之前,将其转化为对应的决策:例如,未标注的网格布局不是需要提及的缺陷,而是无人做出的关于网格如何被朗读的决策。结果:得到一个简短的决策列表,每个决策的长度短于问题列表,且所有观察结果都对应到了决策行。
  7. 每个决策写入一行记录。运行
    python3 scripts/ledger.py add --file decision-ledger-<slug>.md --decision "<决策内容>" --chosen "<已选方案>" --trades "<取舍内容>" --risks "<风险内容>" --origin <deliberate, inherited, or open>
    ,如果该决策来自步骤4的问题而非工件本身,需添加
    --source "<问题ID及链接>"
    参数。结果:每个决策对应一行追加记录,文件中会标注哪些记录来自工件观察,哪些来自词汇库。
  8. 统计记录数量。运行
    python3 scripts/ledger.py count --file decision-ledger-<slug>.md --decision "<决策内容>"
    ,再运行
    show
    命令统计总记录数及继承而来的记录数,用于回复内容。结果:使用命令输出的数字,而非记忆中的数字,后续步骤10会核对这些数字与文件内容是否一致。
  9. 询问脚本是否需要回复及回复哪一行。运行
    python3 scripts/speak.py --file decision-ledger-<slug>.md --rank
    ,按未知程度对继承而来的记录进行排序,然后运行
    python3 scripts/speak.py --file decision-ledger-<slug>.md --decision "<排名第一的记录>" --origin inherited --live yes
    。结果:得到一个排序后的列表,然后得到一行以ask或hold开头的输出。若输出以ask开头,则在回复中添加一个问题。
  10. 从assets/reply-template.md生成回复草稿。结果:生成四行填充完成的内容。
  11. 检查草稿。运行
    python3 scripts/check_reply.py --file <草稿路径>
    ,若为ask模式需添加
    --full-slice
    参数,若账本未与草稿在同一目录需添加
    --ledger-dir <文件夹路径>
    参数。该命令会读取回复中指定的账本,并核对记录数与文件内容是否一致,未运行命令获取的数字会在此步骤失败。结果:输出
    draft passed every rule
    行。若输出其他内容,请根据提示修正后重新运行该步骤。

When does this skill speak?

该技能何时会主动回复?

Step 8 answers this, and the script holds the counts so the answer stays the same each time. Speak when a decision is live, the choice arrived inherited, and the ledger has seen it fewer than three times. Stay quiet in every other case and write the row anyway. Silence is the common and correct outcome.
References for the reasoning behind that rule sit in references/interruption.md.
步骤8会回答这个问题,脚本会保存统计数据以确保每次回答一致。当决策处于活跃状态、选择是继承而来且账本中该记录出现次数少于3次时,技能会主动回复。其他所有情况均保持沉默,但仍会写入记录。沉默是常见且正确的结果。
该规则背后的推理依据可参考references/interruption.md。

What loads when?

各类资源的加载时机?

  • references/coordinates.md: read at step 3, for the 35 category names, the eight lenses, and the widening ladder.
  • references/interruption.md: read when the reasoning behind step 8 matters, or when a user asks why the skill stayed quiet.
  • references/ledger-format.md: read at step 6, for what belongs in each column.
  • assets/gate-terms.yaml: the vocabulary step 0 matches against, read by the gate.
  • assets/terms-index.yaml: the terms counted from the questions, per category, read by scripts/locate.py at step 3.
  • assets/trade-terms.yaml: the words a discipline uses for its own work, written by hand, read alongside the counted terms at step 3. Add to this file when a discipline lands on the wrong shelf, then run scripts/bench.py.
  • assets/disciplines.yaml: the occupation names themselves, mapped to the shelf each craft's decisions live on, read at step 3 and weighted above the trade words.
  • references/disciplines.md: read when the work is not a screen, when a craft is not listed, or when step 3 cannot place the artifact.
  • references/generation-contract.md: read before changing this skill's layout, task graph, or checks, for the rules the structure has to satisfy.
  • references/decisions.md: read when you need to know why this skill is built the way it is, before changing a script, a threshold, or the vocabulary.
  • references/decisions-field.md: read alongside references/decisions.md when the question is about a measure, a fixture, or how far the library reaches across crafts.
  • assets/index.yaml: the category index, read by the scripts.
  • assets/questions/: one file per category, holding all 16,112 questions. The scripts read these, and a reply quotes only the selected rows.
  • assets/reply-template.md: read at step 9.
  • scripts/: run these.
    --help
    on any of them prints flags, exit codes, and an example.
  • scripts/crafts.py: run to see how far this skill reaches across design occupations, and
    --thin
    to list the crafts their own shelf serves thinly.
  • scripts/tests/: run
    python3 -m unittest discover -s scripts/tests -p 'test_*.py'
    after changing any script.
  • examples/: read the file matching the command being run, read examples/example-widened-slice.md before trusting any slice, read examples/example-weak-read.md when step 3 prints a weak read line, and read examples/example-image-artifact.md when the work arrives as a picture, and read examples/example-no-question.md when the ledger holds no inherited row.
  • evals/: read when measuring this skill rather than using it.
  • scripts/bench.py: run after any change to the vocabulary, the term index, or the scoring, and after any run on real design work.
  • references/coordinates.md:步骤3读取,包含35个分类名称、8个视角及放宽匹配的层级规则。
  • references/interruption.md:当需要了解步骤8的推理依据,或用户询问技能为何保持沉默时读取。
  • references/ledger-format.md:步骤6读取,包含各列应填写的内容规范。
  • assets/gate-terms.yaml:步骤0用于匹配的词汇表,由gate脚本读取。
  • assets/terms-index.yaml:按分类统计的问题术语,由scripts/locate.py在步骤3读取。
  • assets/trade-terms.yaml:各领域用于描述自身工作的专业词汇,手动编写,与统计术语一同在步骤3读取。当某个领域被归类到错误的分类时,请更新此文件,然后运行scripts/bench.py。
  • assets/disciplines.yaml:职业名称列表,映射到各领域决策所属的分类,在步骤3读取,权重高于行业词汇。
  • references/disciplines.md:当工作内容不是界面、未列出对应领域,或步骤3无法定位工件时读取。
  • references/generation-contract.md:在修改该技能的布局、任务图或检查规则之前读取,包含结构必须满足的规则。
  • references/decisions.md:在需要了解该技能的设计原因,或修改脚本、阈值、词汇表之前读取。
  • references/decisions-field.md:当问题涉及度量标准、固定配置或词汇库覆盖的领域范围时,与references/decisions.md一同读取。
  • assets/index.yaml:分类索引,由脚本读取。
  • assets/questions/:每个分类对应一个文件,包含全部16112个问题。脚本会读取这些文件,回复仅引用选中的记录。
  • assets/reply-template.md:步骤9读取。
  • scripts/:运行这些脚本。任何脚本添加
    --help
    参数都会输出可用参数、退出码及示例。
  • scripts/crafts.py:运行该脚本可查看技能覆盖的设计领域范围,添加
    --thin
    参数可查看分类覆盖不足的领域。
  • scripts/tests/:修改任何脚本后,运行
    python3 -m unittest discover -s scripts/tests -p 'test_*.py'
    执行测试。
  • examples/:阅读与当前运行命令对应的示例文件;在信任任何提取的问题列表之前,阅读examples/example-widened-slice.md;当步骤3输出
    weak read
    行时,阅读examples/example-weak-read.md;当工件为图片时,阅读examples/example-image-artifact.md;当账本中无继承记录时,阅读examples/example-no-question.md。
  • evals/:在度量该技能性能而非使用时读取。
  • scripts/bench.py:在修改词汇表、术语索引或评分规则后,或在处理真实设计工作后运行。

How does real work stay in this skill?

如何将真实设计工作留存于该技能中?

Every real design task run through this skill becomes a permanent fixture, so a later change cannot quietly undo what this one fixed. Run these steps at the end of any run on real work.
  1. Save the brief in the words that discipline actually used, at
    evals/files/brief-<nn>-<slug>.txt
    . Result: a file that reads like the request rather than like a test.
  2. Record the shelf that turned out to be right, as one new key in
    evals/files/briefs.json
    . Result: one key added and no existing key changed.
  3. Add any request the gate should have turned away to
    evals/files/non-design.json
    . Result: one more request the gate has to stop.
  4. Run
    python3 scripts/bench.py
    . Exit 1 names every measure that fell, so fix the cause and run it again. Result: the line
    exit 0
    , meaning no measure sits below the recorded baseline.
  5. Run
    python3 scripts/bench.py --update
    only after step 4 passed and only when this run added a fixture. Result: a baseline no later run may fall below.
The baseline in
evals/baseline.json
holds the gate measures and, for each fixture, the rank position of the shelf that was right. Position is the sensitive part. A weakened vocabulary moves a shelf from second place to fifth long before it leaves the top three, and only the position notices that.
Never lower a recorded number to make a run pass. A measure that fell is a report about the change, not about the fixture.
通过该技能处理的每一项真实设计任务都会成为永久固定内容,后续修改无法悄悄推翻已修复的内容。处理完真实设计工作后,请执行以下步骤:
  1. 将设计 brief 按该领域的原始表述保存至
    evals/files/brief-<nn>-<slug>.txt
    。结果:文件内容与原始请求一致,而非测试用例格式。
  2. 将实际正确的分类记录为
    evals/files/briefs.json
    中的新键。结果:添加一个新键,不修改现有键。
  3. 将任何gate脚本应拦截的请求添加至
    evals/files/non-design.json
    。结果:新增一个gate脚本需拦截的请求。
  4. 运行
    python3 scripts/bench.py
    。若退出码为1,表示某项指标下降,请修复问题后重新运行。结果:输出
    exit 0
    行,表示所有指标均未低于记录的基线。
  5. 仅在步骤4通过且本次运行添加了固定内容后,运行
    python3 scripts/bench.py --update
    。结果:生成一个后续运行不得低于的基线。
evals/baseline.json
中的基线包含gate脚本的度量指标,以及每个固定内容对应的正确分类排名位置。排名位置是敏感指标。词汇表弱化会导致分类从第二名降至第五名,远早于跌出前三名,只有排名位置能发现这种变化。
切勿降低已记录的指标数值来使运行通过。指标下降是关于修改的报告,而非关于固定内容的问题。

Does this work for my craft?

该技能适用于我的领域吗?

Yes, and the fastest route is to say what you do.
assets/disciplines.yaml
maps two hundred occupation names to the shelf their decisions live on, from art director to naval architect to floral designer, so naming the craft lands the slice in one step. Measured across sixty five occupations, each given one line of real work in its own trade language, every one passes the gate, sixty two land the right shelf first and all sixty five land it in the top three.
The method is craft agnostic and the library is not evenly deep. Nine of the sixty five crafts are thinly served by the shelf they belong on, and they are named in references/disciplines.md rather than left to be discovered mid run. It is thickest around screens, brands and product and thinner around flowers, tailoring and lighting rigs. When the shelf is thin, the columns still hold, so read the slice as prompts and write the rest of the rows from the work. references/disciplines.md carries the placement table for a craft that is not listed, and the two lines to add so the next person does not have to.
是的,最快的方式是说明你的职业。
assets/disciplines.yaml
将200个职业名称映射到其决策所属的分类,从艺术总监到海军建筑师再到花艺设计师,只需说明职业即可一步完成分类。针对65个领域的测试显示,每个领域提供一行该领域的真实工作内容,所有领域均通过gate校验,其中62个领域的正确分类排名第一,全部65个领域的正确分类均位列前三。
该方法与领域无关,但词汇库的覆盖深度并不均匀。65个领域中有9个领域所属的分类覆盖不足,这些领域在references/disciplines.md中列出,而非在运行中让用户自行发现。词汇库在界面、品牌和产品设计领域覆盖最全面,在花艺、裁缝和灯光设备领域覆盖较浅。当分类覆盖不足时,账本的列结构仍然适用,请将提取的问题列表作为提示,从工件本身补充剩余记录。references/disciplines.md包含未列出领域的分类映射表,以及需添加的两行内容,以便后续用户无需重复操作。

What belongs to another skill?

哪些内容属于其他技能的范畴?

Facts belong elsewhere. A skill that captures design context owns tokens, screen inventories, acceptance criteria, and stated rules. This skill owns decisions. The seam matters: every stated rule in a brief is a choice somebody made and then wrote down as a constraint, which is what the audit posture tests. A skill that enumerates screen states owns the state list, and this skill attaches decisions to those states.
事实类内容属于其他技能。负责捕获设计上下文的技能管理设计token、界面清单、验收标准和既定规则。该技能专注于决策。两者的边界很重要:设计brief中的每一条既定规则都是某人做出的选择,随后被记录为约束条件,这正是audit模式要验证的内容。负责枚举界面状态的技能管理状态列表,而该技能将决策与这些状态关联。

Gotchas

注意事项

  • Step 0 continues by default. It stops only when a request names another craft and holds no design surface, because design conversation runs on ordinary words and a list of design nouns cannot recognise all of it.
  • Choosing the category by hand sends the slice to the wrong shelf. Step 3 reads the artifact instead, which is why it comes before step 4 rather than inside it.
  • Step 3 proposes and you decide. Measured against twenty six briefs from twenty six disciplines, the right shelf came first twenty four times and appeared in the top three every time. It reads two vocabularies, one counted from the questions and one written by hand for the words a discipline uses, so a brief in trade language such as lower thirds, a kill feed, or an alerting sound for a bus still lands. No ranking that was wrong stayed silent, so treat a weak read line as the instruction to pass
    --hint
    rather than as a note.
  • A category with no
    --match
    returns what is common in that category rather than what is in front of you. Pass a noun the artifact uses.
  • Read stderr at step 4. A widened slice looks the same as a precise one and answers a broader question.
  • Group before writing. Twenty questions about a checkout screen usually reduce to four or five decisions.
  • Anything you noticed and did not write down is lost. The ledger holds choices, so phrase the observation as the choice it implies and give it a row, rather than keeping it in the reply or dropping it.
  • Leave the chosen column empty during choose and shape. The empty cell is the deliverable.
  • Expect inherited rows. A ledger where every row reads deliberate is a sign the audit skipped step 5, and a ledger with none of them cannot earn a question, which step 10 enforces. The word none is the whole fourth line in that case.
  • Match a category name exactly. An unmatched name exits 2 and prints the name it received.
  • Slice output replaces long dashes with a comma or a colon. The stored files keep their punctuation.
  • 步骤0默认继续执行。仅当请求涉及其他领域且不包含设计层面内容时才会终止,因为设计沟通使用日常语言,设计名词列表无法识别所有相关表述。
  • 手动选择分类会导致提取的问题列表指向错误的分类。步骤3会读取工件内容,因此该步骤在步骤4之前而非内部执行。
  • 步骤3给出建议,由你做出决策。针对26个领域的26份设计brief测试显示,正确分类24次排名第一,所有情况均位列前三。该步骤读取两个词汇表:一个是从问题中统计的词汇,另一个是手动编写的各领域专业词汇,因此即使是使用行业术语(如下三分之一字幕、击杀反馈、公交警示音)的设计brief也能正确归类。错误的排名不会静默,因此请将
    weak read
    行视为添加
    --hint
    参数的指令,而非单纯的提示。
  • 未指定
    --match
    参数的分类会返回该分类下的通用内容,而非当前工件的特定内容。请传入工件中包含的名词。
  • 请查看步骤4的stderr输出。放宽范围后的问题列表与精准列表外观相同,但回答的是更宽泛的问题。
  • 先分组再写入记录。关于结账界面的20个问题通常可归纳为4-5个决策。
  • 任何你注意到但未写入记录的内容都会丢失。账本用于记录选择,因此请将观察结果转化为对应的决策并写入一行记录,而非保留在回复中或丢弃。
  • 在choose和shape模式下,将chosen列留空。空单元格就是交付成果。
  • 预期会有继承而来的记录。账本中所有记录均为deliberate(刻意设计)的情况,表明audit模式跳过了步骤5;而无继承记录的账本无法生成问题,步骤10会强制执行此规则。这种情况下,回复的第四行内容为“none”。
  • 精确匹配分类名称。未匹配的名称会返回退出码2并输出收到的名称。
  • 提取的问题列表会将长破折号替换为逗号或冒号。存储的文件会保留原有标点。

When is this skill done?

该技能何时完成?

On a
not-design
verdict the work is done at step 0, with nothing written and nothing said. Otherwise the work is done when the ledger holds one row per decision, every row carries an origin, the reply follows the template with counts taken from commands run in this turn, and
python3 scripts/check_reply.py
printed
draft passed every rule
.
若判定结果为
not-design
,则在步骤0完成工作,不写入任何内容也不生成回复。否则,当账本中每个决策对应一行记录、每行记录包含来源信息、回复遵循模板且统计数字来自本次运行的命令,且
python3 scripts/check_reply.py
输出
draft passed every rule
时,工作完成。