HomeTrang chủ Terminal voiceGiọng terminal
How the harness talks — and the fence that keeps it surface-onlyCách harness nói — và hàng rào giữ nó chỉ ở bề mặt

Terminal voiceGiọng terminal

6 knobs

The harness lets you tune how it talks in the terminal — bluntness, persona, explanation depth, how hard it interviews you. Six knobs in terminal-voice.yaml, resolved by voice_prefs.py, injected at session start. The whole system rests on one invariant: these knobs change the conversational prose and nothing else — never your code, your artifacts, your evidence, or a gate's decision.Harness cho bạn chỉnh cách nó nói trong terminal — độ thẳng, persona, độ sâu giải thích, độ gắt khi phỏng vấn bạn. Sáu núm trong terminal-voice.yaml, do voice_prefs.py phân giải, tiêm lúc mở phiên. Cả hệ thống dựa trên một bất biến: các núm này chỉ đổi prose hội thoại, không gì khác — không bao giờ đụng code, artifact, bằng chứng, hay quyết định gate.

What it is — and isn'tNó là gì — và không là gì

✓ It changes✓ Nó đổi

  • the register of what the assistant says to you in the terminalgiọng của những gì trợ lý nói với bạn trong terminal
  • how blunt, how deep, in what persona, how proactively it promptsmức thẳng, độ sâu, persona nào, chủ động gợi ý cỡ nào

✗ It never touches✗ Nó không bao giờ đụng

  • code, generated docs / reports / commitscode, docs / báo cáo / commit sinh ra
  • evidence — file:line, IDs, SHAs, quotesbằng chứng — file:line, ID, SHA, trích dẫn
  • any gate's allow / block decisionquyết định cho-qua / chặn của bất kỳ gate nào

The harshness ladder — voice_level 1–9Thang độ gắt — voice_level 1–9

Default 5. Reaching 6–9 is a deliberate edit in terminal-voice.yaml — no per-run prompt. The register escalates bluntness aimed at the work; it never escalates past the universal-harm floor.Mặc định 5. Lên 6–9 là một chỉnh có chủ đích trong terminal-voice.yaml — không hỏi từng lần. Giọng tăng độ thẳng nhắm vào công việc; không bao giờ vượt qua sàn universal-harm.

LevelMứcRegister of the terminal proseGiọng của prose terminal
1–2polite, measured; soften hard newslịch sự, chừng mực; làm dịu tin xấu
3–4direct but courteousthẳng nhưng nhã
5 (default)blunt, direct, NO profanitythẳng, trực diện, KHÔNG tục
6sharper; name a bad idea as bad, no hedgingsắc hơn; gọi ý tồi là tồi, không vòng vo
7roast the work; vi address form ông/tôi · bà/tôi"quay" công việc; xưng hô ông/tôi · bà/tôi
8harsher; vi pronouns mày/tao permittedgắt hơn; cho phép mày/tao
9maximum bluntness; work-aimed profanity permitted (vi: đm/vl-tier)gắt tối đa; cho phép tục nhắm-công-việc (đm/vl-tier)

The vi pronoun / profanity rows are register form, not a licence to target the person — that line is the floor below.Các dòng đại từ / tục là hình thức giọng, không phải giấy phép nhắm vào con người — ranh giới đó là cái sàn bên dưới.

The universal-harm floorSàn universal-harm

Non-removable. It is TARGET-decided, not word-decided, and it holds at level 9 even with the config set there. Self-applied at generation time — there is no second-pass editor.Không gỡ được. Nó quyết theo ĐỐI-TƯỢNG, không theo từ-ngữ, và giữ ở mức 9 kể cả khi config đặt ở đó. Tự áp ngay lúc sinh chữ — không có biên-tập lượt-hai.

Aimed at…Nhắm vào…At any levelỞ mọi mức
the work — the idea, code, plan, decisioncông việc — ý tưởng, code, plan, quyết địnhIN — up to level 9ĐƯỢC — tới mức 9
who the user is — identity, body, familycon người người dùng — danh tính, thân thể, gia đìnhOUT
slurs / protected-characteristic attackslăng mạ / tấn công đặc-điểm-được-bảo-vệOUT
threats, intimidationđe dọa, uy hiếpOUT
sexual content directed at the personnội dung tình dục nhắm vào ngườiOUT
self-harm encouragementcổ vũ tự hạiOUT
⚖️
"Your approach is garbage, here's why" is IN at a high level. An attack on the person is OUT at every level — including 9."Cách của bạn rác lắm, đây là lý do" là ĐƯỢC ở mức cao. Tấn công con người là KHÔNG ở mọi mức — kể cả 9.

The persona catalog — none + 13Catalog persona — none + 13

persona sets the surface form of the prose; voice_level sets the harshness inside that form — the two are orthogonal. The work group is default-eligible; the fun group is opt-in. Every persona keeps technical accuracy intact, and the scope-fence binds to all of them.persona đặt hình thức bề mặt của prose; voice_level đặt độ gắt bên trong hình thức đó — hai cái trực giao. Nhóm work dùng được mặc định; nhóm fun phải bật chủ động. Mọi persona giữ nguyên độ chính xác kỹ thuật, và scope-fence ràng buộc tất cả.

BaseGốc

none base

The natural harness voice — the default. An unrecognised id falls back here.Giọng harness tự nhiên — mặc định. ID lạ rơi về đây.

Work group — default-eligibleNhóm work — dùng được mặc định

military work

Terse command-brief: orders, no filler, bottom line up top.Lệnh ngắn: mệnh lệnh, không thừa, kết luận lên đầu.

reality-check work

States the blunt risk / assumption first, then the answer.Nêu thẳng rủi ro / giả định trước, rồi mới trả lời.

git-log work

Imperative one-liners, like a commit log of the reasoning.Một dòng mệnh lệnh, như commit log của lập luận.

socratic work

Answers by asking the sharp question that unblocks you.Trả lời bằng câu hỏi sắc gỡ thế bí cho bạn.

bluf work

Bottom Line Up Front: conclusion first, support after.Kết luận lên đầu, dẫn chứng theo sau.

rubber-duck work

Thinks out loud step by step so you can spot the flaw.Nghĩ ra lời từng bước để bạn thấy chỗ sai.

feynman work

Explains as if to a smart beginner — plain words, one analogy.Giải thích như cho người mới thông minh — lời mộc, một phép so sánh.

first-principles work

Strips to fundamentals, rebuilds the answer from them.Lột về nền tảng, dựng lại câu trả lời từ đó.

Fun group — opt-in (accuracy still intact)Nhóm fun — bật chủ động (vẫn chính xác)

caveman fun

Very short primitive grammar; still technically correct.Ngữ pháp nguyên thủy rất ngắn; vẫn đúng kỹ thuật.

yoda fun

Inverted phrasing; the point survives the word order.Đảo cú pháp; ý vẫn sống qua trật tự từ.

pirate fun

Nautical flavour over otherwise precise content.Phong vị thủy thủ trên nội dung vẫn chính xác.

80s-hacker fun

Retro-hacker swagger; the facts stay straight.Chất hacker thập niên 80; sự thật vẫn thẳng.

dad-joke fun

One groan-worthy pun, then the real answer.Một câu chơi chữ nhăn mặt, rồi câu trả lời thật.

Explanation depth — terminal_voice_level 0–5Độ sâu giải thích — terminal_voice_level 0–5

Depth and format of terminal answers — and interview/turn verbosity (the former detail_level folds in here). Changes depth only — never correctness, never which files are touched. Default 5.Độ sâu và định dạng câu trả lời terminal — và độ dài hội thoại/lượt (knob detail_level cũ gộp vào đây). Chỉ đổi độ sâu — không đổi tính đúng, không đổi file bị đụng. Mặc định 5.

LevelMứcDepthĐộ sâu
0answer only, no explanationchỉ câu trả lời, không giải thích
1answer + one-line whycâu trả lời + một dòng vì sao
2brief reasoninglập luận ngắn
3reasoning + key trade-offslập luận + đánh đổi chính
4thorough reasoninglập luận kỹ
5 (default)full reasoning, context, alternativeslập luận đầy đủ, bối cảnh, phương án khác
📝
no_markdown: true drops markdown from terminal answers (plain prose) — saves ~20–30% tokens on long replies. Formatting only, never content.no_markdown: true bỏ markdown khỏi câu trả lời terminal (prose thuần) — tiết kiệm ~20–30% token cho câu dài. Chỉ định dạng, không đổi nội dung.

Interview-rigor knobsNúm độ-gắt phỏng vấn

Read by hs:plan / hs:discover / hs:brainstorm — they shape how the assistant interviews you, not what it builds.Được hs:plan / hs:discover / hs:brainstorm đọc — chúng định cách trợ lý phỏng vấn bạn, không phải cái nó xây.

KnobNúmValues (default)Giá trị (mặc định)ControlsĐiều khiển
interview_rigorlight · standard · deepdepth of challenge / gap-probing — separate from lengthđộ thách thức / dò khe-hở — tách khỏi độ dài
action_promptingminimal · standard · proactivehow many next-step suggestions at turn boundariesbao nhiêu gợi ý bước-kế ở cuối lượt

Deliverable register — output.yaml (a separate file)Register sản phẩm — output.yaml (file riêng)

These are not terminal-voice knobs — they live in output.yaml and shape the deliverable (generated reports and code), not the live conversation. Resolve every value with output_config.py --resolved. Evidence (file:line / IDs / SHAs / numbers / quotes) stays invariant at every level.Đây không phải núm giọng terminal — chúng ở output.yaml và định hình sản phẩm (báo cáo và code sinh ra), không phải hội thoại trực tiếp. Phân giải mọi giá trị bằng output_config.py --resolved. Bằng chứng (file:line / ID / SHA / số / trích dẫn) bất biến ở mọi mức.

KnobNúmValues (default)Giá trị (mặc định)ShapesĐịnh hình
languagevi · en (vi)language of generated prose — English instructions in, chosen language outngôn ngữ prose sinh ra — chỉ dẫn tiếng Anh vào, ngôn ngữ đã chọn ra
audienceoff · 0–5 (off)prose register for chat + reports — 0 plain (non-technical) … 5 peer (dense)register prose cho chat + báo cáo — 0 mộc (phi kỹ thuật) … 5 ngang hàng (đặc)
code_styleoff · 0–5 (off)adapts generated code only (comment density, verbosity) — 0 beginner … 5 expert. NOT scope-fenced.chỉnh chỉ code sinh ra (mật độ comment, độ dài) — 0 mới … 5 chuyên gia. KHÔNG bị scope-fence.
humanizetrue · falseapply the anti-AI-tell / natural-prose pass — default off; on when publishing externallyáp lượt anti-AI-tell / prose tự nhiên — mặc định tắt; bật khi xuất bản ra ngoài

audience shapes prose; code_style shapes code — the two are disjoint. Both are deliberately NOT merged with the scope-fenced terminal voice (disjoint fail-mode).audience định hình prose; code_style định hình code — hai cái rời nhau. Cả hai cố tình KHÔNG gộp với giọng terminal scope-fenced (chế độ lỗi tách biệt).

The scope-fence & artifact voiceScope-fence & giọng artifact

The harness has three independent voice axes. The terminal voice touches axis 3 only — it never reaches into the other two.Harness có ba trục giọng độc lập. Terminal voice chỉ chạm trục 3 — không bao giờ với tới hai trục kia.

1 · Report language1 · Ngôn ngữ báo cáo

Generated reports follow output.yaml (language: vi|en + humanizer). Untouched by voice knobs.Báo cáo sinh ra theo output.yaml (language: vi|en + humanizer). Núm giọng không đụng.

2 · Artifact candor2 · Độ thẳng artifact

Fixed per artifact type: the journal-writer keeps its brutal candor; the hs:critique report stays neutral — at every voice_level.Cố định theo loại artifact: journal-writer giữ độ thẳng tàn nhẫn; báo cáo hs:critique giữ trung tính — ở mọi voice_level.

3 · Terminal voice3 · Giọng terminal

This system — the live conversational register. The only axis these knobs move.Hệ này — giọng hội thoại trực tiếp. Trục duy nhất các núm này dịch chuyển.

The fence, testable.Hàng rào, kiểm được. A report generated in a voice_level: 9 session is identical in tone to one generated at voice_level: 5. If a knob changed an artifact, a commit, evidence, or a gate decision, that is a defect, not a feature. scope-fence + universal-harm floor are recorded as DEC-65; the persona catalog as DEC-66. Một báo cáo sinh trong phiên voice_level: 9 giống hệt về giọng với bản sinh ở voice_level: 5. Nếu một núm đổi artifact, commit, bằng chứng, hay quyết định gate — đó là lỗi, không phải tính năng. scope-fence + universal-harm floor ghi ở DEC-65; catalog persona ở DEC-66.

How to switch — /hs:voiceCách đổi — /hs:voice

Change the register for this session, or persist a new default. The skill rewrites terminal-voice.yaml only when you ask it to save.Đổi giọng cho phiên này, hoặc lưu mặc định mới. Skill chỉ ghi lại terminal-voice.yaml khi bạn yêu cầu save.

/hs:voice pirate · /hs:voice level 7 · /hs:voice depth 2 · /hs:voice plain on · /hs:voice save
ArgumentTham sốSetsĐặt
[persona]surface form (e.g. military, feynman, pirate)hình thức (vd military, feynman, pirate)
level <1-9>voice_level
depth <0-5>terminal_voice_level
plain on|offno_markdown
savepersist the choice to terminal-voice.yamllưu lựa chọn vào terminal-voice.yaml

A missing key, out-of-range value, or typo silently falls back to its default — the loader never crashes.Khóa thiếu, giá trị ngoài khoảng, hay gõ sai sẽ âm thầm về mặc định — loader không bao giờ sập.

FAQHỏi đáp

If I set voice_level: 9, will my reports get harsher too?Đặt voice_level: 9 thì báo cáo có gắt hơn không?
No. The scope-fence guarantees a report's tone is identical at level 9 and level 5. Voice changes the terminal conversation only — never generated artifacts, commits, evidence, or gate decisions.Không. Scope-fence đảm bảo giọng báo cáo giống hệt ở mức 9 và mức 5. Giọng chỉ đổi hội thoại terminal — không bao giờ đổi artifact, commit, bằng chứng, hay quyết định gate.
Does a fun persona make answers less accurate?Persona fun có làm câu trả lời kém chính xác không?
No. Every fun persona keeps technical accuracy intact — the joke rides on top of a correct answer, it never replaces it. Persona is form; correctness is fixed.Không. Mọi persona fun giữ nguyên độ chính xác — câu đùa cưỡi trên câu trả lời đúng, không thay thế nó. Persona là hình thức; tính đúng là cố định.
Can a high level target me personally?Mức cao có nhắm vào cá nhân tôi không?
Never. The universal-harm floor is target-decided and non-removable: venom at the work is allowed up to 9, but anything aimed at who you are — identity, body, family, slurs, threats — is out at every level.Không bao giờ. Sàn universal-harm quyết theo đối-tượng và không gỡ được: gắt với công việc được tới 9, nhưng bất cứ gì nhắm vào con người bạn — danh tính, thân thể, gia đình, lăng mạ, đe dọa — đều bị loại ở mọi mức.
Is interview_rigor the same as making answers longer?interview_rigor có phải làm câu trả lời dài hơn?
No — rigor is depth of challenge (how hard it probes), separate from verbosity. "Concise but deep" is valid. Conversational length now rides terminal_voice_level; report length is output.yaml.Không — rigor là độ thách thức (dò gắt cỡ nào), tách khỏi độ dài. "Ngắn mà sâu" là hợp lệ. Độ dài hội thoại giờ theo terminal_voice_level; độ dài báo cáo ở output.yaml.