agent-bios 0.19.1 → 0.19.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (85) hide show
  1. package/DEPENDENCIES.md +27 -27
  2. package/INSTALL.md +4 -4
  3. package/README.md +53 -26
  4. package/claude/CLAUDE.md +1 -1
  5. package/claude/guides/claude-prompting.md +1 -1
  6. package/claude/guides/cli-multi-model-workflow.md +3 -3
  7. package/claude/guides/documentation-hygiene.md +3 -0
  8. package/claude/guides/gpt-prompting.md +1 -1
  9. package/claude/guides/korean-writing.md +153 -0
  10. package/claude/guides/learning-flow.md +4 -4
  11. package/claude/guides/session-distill-workflow.md +8 -8
  12. package/claude/guides/slide-writing/RUNBOOK.md +5 -5
  13. package/claude/skills/repo-charter/SKILL.md +3 -3
  14. package/claude/skills/understand/SKILL.md +5 -5
  15. package/codex/AGENTS.md +1 -1
  16. package/codex/guides/claude-prompting.md +1 -1
  17. package/codex/guides/cli-multi-model-workflow.md +3 -3
  18. package/codex/guides/documentation-hygiene.md +3 -0
  19. package/codex/guides/gpt-prompting.md +1 -1
  20. package/codex/guides/korean-writing.md +153 -0
  21. package/codex/guides/learning-flow.md +4 -4
  22. package/codex/guides/session-distill-workflow.md +8 -8
  23. package/codex/guides/slide-writing/RUNBOOK.md +5 -5
  24. package/compose/app_bridge/SKILL.md +12 -12
  25. package/compose/app_bridge/scripts/bridge.py +15 -7
  26. package/compose/assemble.py +5 -5
  27. package/compose/bootstrap/SKILL.md +18 -18
  28. package/compose/canary.sh +4 -4
  29. package/compose/check-domains.py +6 -6
  30. package/compose/corpus-state.py +16 -1168
  31. package/compose/corpus.py +13 -402
  32. package/compose/corpus_app.py +14 -450
  33. package/compose/corpus_catalog.py +15 -926
  34. package/compose/corpus_import.py +14 -523
  35. package/compose/corpus_install.py +14 -1847
  36. package/compose/corpus_session.py +16 -848
  37. package/compose/corpus_setup.py +16 -672
  38. package/compose/corpus_setup_cli.py +15 -580
  39. package/compose/corpus_setup_i18n.py +20 -324
  40. package/compose/corpus_setup_ui.py +18 -645
  41. package/compose/corpus_store.py +16 -1664
  42. package/compose/corpus_transaction.py +15 -284
  43. package/compose/corpus_ui.py +17 -972
  44. package/compose/corpus_ui_runtime.py +16 -274
  45. package/compose/corpus_understand.py +13 -671
  46. package/compose/domains.json +2 -1
  47. package/compose/instructions-state.py +1175 -0
  48. package/compose/instructions.py +409 -0
  49. package/compose/instructions_app.py +464 -0
  50. package/compose/instructions_catalog.py +931 -0
  51. package/compose/instructions_import.py +529 -0
  52. package/compose/instructions_install.py +1866 -0
  53. package/compose/instructions_session.py +852 -0
  54. package/compose/instructions_setup.py +676 -0
  55. package/compose/instructions_setup_cli.py +586 -0
  56. package/compose/instructions_setup_i18n.py +324 -0
  57. package/compose/instructions_setup_ui.py +647 -0
  58. package/compose/instructions_store.py +1668 -0
  59. package/compose/instructions_transaction.py +306 -0
  60. package/compose/instructions_ui.py +975 -0
  61. package/compose/instructions_ui_runtime.py +278 -0
  62. package/compose/instructions_understand.py +678 -0
  63. package/compose/register-hooks.py +1 -1
  64. package/compose/setup/START.md +11 -11
  65. package/docs/advanced-launch.md +11 -11
  66. package/docs/instructions-compatibility.md +86 -0
  67. package/docs/{corpus.md → instructions.md} +35 -8
  68. package/docs/recovery.md +10 -10
  69. package/docs/releases/0.19.2.md +38 -0
  70. package/docs/session-model.md +23 -20
  71. package/docs/setup.md +27 -26
  72. package/docs/understand.md +6 -6
  73. package/install.sh +70 -69
  74. package/launch/agent-launch.py +298 -290
  75. package/launch/agent-launch.toml +2 -2
  76. package/launch/i18n/en.toml +55 -55
  77. package/launch/i18n/ja.toml +56 -56
  78. package/launch/i18n/ko.toml +56 -56
  79. package/launch/shell_integration.py +4 -4
  80. package/learn/collect-learning.py +10 -10
  81. package/learn/learning.schema.json +1 -1
  82. package/learn/migrate-learnings.py +51 -51
  83. package/package.json +27 -11
  84. package/provenance.json +1 -1
  85. /package/docs/assets/{corpus-studio.svg → instructions-studio.svg} +0 -0
package/DEPENDENCIES.md CHANGED
@@ -17,33 +17,33 @@ The verification column states the scope of each check.
17
17
 
18
18
  The supported operating systems are macOS and Linux (`package.json` `os`). Private
19
19
  transactions, instruction capture and app registration use POSIX file locks, file
20
- descriptors and symlinks. The JSON setup protocol, machine-mode corpus operations,
20
+ descriptors and symlinks. The JSON setup protocol, machine-mode instructions operations,
21
21
  import and app context use Python standard libraries. Interactive installation,
22
- package/current-checkout Corpus Studio and the private/current-checkout launcher's
22
+ package/current-checkout Instructions Studio and the private/current-checkout launcher's
23
23
  rich entrypoint load the shipped
24
24
  offline UI dependencies. Optional learning validation and retained compatibility clients
25
25
  have separate runtime requirements below.
26
26
 
27
27
  | Tool | Required by | Required capability | Verified |
28
28
  | --- | --- | --- | --- |
29
- | `python3` | `compose/corpus*.py`, app bridge helper, `session-cost.py`, `launch/agent-launch.py` | Python 3.11+ (`tomllib`) for the private store, offline installer UI loader, import evidence, app receipts and native session adapter | 3.14.5 · version report · 2026-09-12 |
29
+ | `python3` | `compose/instructions*.py`, app bridge helper, `session-cost.py`, `launch/agent-launch.py` | Python 3.11+ (`tomllib`) for the private store, offline installer UI loader, import evidence, app receipts and native session adapter | 3.14.5 · version report · 2026-09-12 |
30
30
  | `bash` | `install.sh`, shell adapters, provisioner and app helper command dispatch | Bash arrays and argument-preserving execution; macOS system Bash is supported | 3.2.57 · version report · 2026-09-12 |
31
31
  | `git` | conversation source acquisition, clone updates and version-control workflows | clone and detached checkout for a fixed source commit; worktrees and modern revision operations for development. No Git checkout is required to use an installed npm package | 2.50.1 · version report · 2026-09-12 |
32
32
  | `zsh` | `launch/agent-launch.zsh`, optional `launch/shell_integration.py` connection | shell functions, TTY checks and argument-preserving dispatch. Used by the explicit private shell connection as well as compatibility installation; it is not required for ordinary private storage or app context use | 5.9 · version report · 2026-09-12 |
33
33
  | `mktemp`, `cp` | wrapper temporary homes and shell utilities | BSD or GNU command interfaces | local inventory checks command availability; no package-version claim |
34
34
  | `ioreg`, `ps` | conversation setup machine/process identity on macOS | local OS identity probes. Linux uses machine-id and `/proc`; machine identity has a host/filesystem fallback, while missing process evidence leaves a running attempt unconfirmed | source-defined probes; no separate tool version pin |
35
- | Node.js | npm delivery, optional npm host installation and selected slide jobs | `package.json` requires Node >=18 for npm package delivery. The optional Claude npm recipe requires Node >=22; Codex npm installation and slide runtimes retain their own requirements. The Python corpus runtime does not require Node | 26.0.0 · version report · 2026-09-12 |
35
+ | Node.js | npm delivery, optional npm host installation and selected slide jobs | `package.json` requires Node >=18 for npm package delivery. The optional Claude npm recipe requires Node >=22; Codex npm installation and slide runtimes retain their own requirements. The Python instructions runtime does not require Node | 26.0.0 · version report · 2026-09-12 |
36
36
  | `npm` | package delivery and optional host installation recipes | normal global package installation using the user's configured prefix/registry | 12.0.2 · version report · 2026-09-12 |
37
37
  | Homebrew (`brew`) | optional setup installation recipes | available formula/cask installation commands selected in the reviewed setup plan; setup does not install Homebrew itself | local `--version` probe; no installation version pin |
38
38
  | Python `venv`, `ensurepip` and pip | explicitly selected managed-environment installation | create an isolated environment using `AGENT_LAUNCH_PYTHON` (default `python3`); not prerequisites for loading the bundled installation UI. Some Linux Python distributions provide these components separately | clean venv creation and `pip check` · Python 3.14.5 · 2026-09-12 |
39
- | Bundled Textual UI runtime | interactive `install`/`onboard`, package/current-checkout Corpus Studio TTY entrypoint, private/current-checkout launcher rich entrypoint | pure-Python wheels shipped under `compose/ui_runtime/`; the loader verifies and extracts them temporarily before UI imports. No system/managed Textual, pip installation or runtime network access is needed | manifest versions/hashes/licenses; offline clean-interpreter, TTY and backend-handoff checks · 2026-09-12 |
39
+ | Bundled Textual UI runtime | interactive `install`/`onboard`, package/current-checkout Instructions Studio TTY entrypoint, private/current-checkout launcher rich entrypoint | pure-Python wheels shipped under `compose/ui_runtime/`; the loader verifies and extracts them temporarily before UI imports. No system/managed Textual, pip installation or runtime network access is needed | manifest versions/hashes/licenses; offline clean-interpreter, TTY and backend-handoff checks · 2026-09-12 |
40
40
  | Managed `textual` | standalone compatibility launcher copies, retained in-process APIs and author tests | optional environment at `${AGENT_LAUNCH_VENV:-$HOME/.local/share/agent-launch/venv}`. Its installation target is `TEXTUAL_PIN`; current package CLI UI paths use the shipped bundle | 8.2.8 · clean-venv installation/import, `pip check` and UI tests · 2026-09-12 |
41
41
  | `rich` | Textual clients | included with the installer UI bundle and otherwise provided transitively by Textual; not a separate setup choice. Plain editing needs no optional syntax-highlighting packages | managed Textual environment and UI tests · 2026-09-12; bundled version belongs to the manifest |
42
42
  | `jsonschema` | `learn/collect-learning.py`, `learn/check-learning.py` | Draft 2020-12 validation for user learning capture and author verification. `learn` uses a usable system validator, otherwise the configured managed interpreter. Installation target is `JSONSCHEMA_PIN` in the provisioner; `--learning-only` installs it without adding Textual | 4.26.0 · clean-venv installation/import and `pip check` · 2026-09-12 |
43
43
 
44
44
  `agent-bios install` and `onboard` are interactive unless `--non-interactive` is explicit.
45
45
  Selection flags seed the UI, and a non-TTY default call fails before writes. Python
46
- 3.11+ is still required. `compose/corpus_ui_runtime.py` validates the shipped bundle
46
+ 3.11+ is still required. `compose/instructions_ui_runtime.py` validates the shipped bundle
47
47
  before UI imports and uses one process-owned temporary extraction, cleaned on normal
48
48
  exit and released by the launcher before backend `execve`. It creates no persistent UI
49
49
  package installation. Missing, damaged or conflicting bundle state produces repair
@@ -53,8 +53,8 @@ in-process APIs retain their existing dependency contract; CLI bundle activation
53
53
  explicit at the real entrypoints.
54
54
 
55
55
  The terminal installer language chooser and its English/Korean/Japanese messages are
56
- owned by `compose/corpus_setup_i18n.py`. This is a per-run UI choice before dependency
57
- probes, not another corpus language or persisted host setting. Locale variables suggest
56
+ owned by `compose/instructions_setup_i18n.py`. This is a per-run UI choice before dependency
57
+ probes, not another instructions language or persisted host setting. Locale variables suggest
58
58
  a starting choice; the user still sees the chooser. The JSON setup protocol accepts an
59
59
  explicit review language while retaining its stable field names and exact values.
60
60
 
@@ -73,7 +73,7 @@ Setup probes installed commands without installing or signing in. Available depe
73
73
  actions have fixed argv and run only after explicit selection and Apply. The app bridge
74
74
  retains the configured managed-environment path for later learning calls. Host sign-in,
75
75
  user MCP credentials, browser/job bindings and personal skills remain separate setup
76
- steps; absence of an optional route does not make the local corpus store unavailable.
76
+ steps; absence of an optional route does not make the local instructions store unavailable.
77
77
  Manager recipes are offered only after their version probe succeeds. Creating a new
78
78
  managed environment requires the selected Python venv/ensurepip bootstrap; an existing
79
79
  managed interpreter does not need to bootstrap again. The provisioner checks Python
@@ -84,14 +84,14 @@ managed interpreter does not need to bootstrap again. The provisioner checks Pyt
84
84
  | CLI | Required by | Required capability | Verification |
85
85
  | --- | --- | --- | --- |
86
86
  | Claude Code | native Claude sessions and Claude worker/review routes | `--model`, `--effort`, `--agents`, per-call `--append-system-prompt`, `--session-id`, `--resume`, `--mcp-config`, `--plugin-dir`, and the selected permission mode; native global/project loading remains native | 2.1.268 · 2026-09-12 |
87
- | Codex CLI | `compose/corpus_session.py`, launcher and Codex worker/review adapters | per-call `-c`; cwd-aware `app-server --stdio` `config/read`; durable `thread/start`, `thread/inject_items`, `thread/read`; `codex resume`; `codex exec` and agent-config projection | local 0.153.4; isolated compatibility 0.154.0 · 2026-09-12 |
87
+ | Codex CLI | `compose/instructions_session.py`, launcher and Codex worker/review adapters | per-call `-c`; cwd-aware `app-server --stdio` `config/read`; durable `thread/start`, `thread/inject_items`, `thread/read`; `codex resume`; `codex exec` and agent-config projection | local 0.153.4; isolated compatibility 0.154.0 · 2026-09-12 |
88
88
 
89
89
  The Claude row reports the installed command version. The Codex row distinguishes the
90
90
  installed runtime from the newer isolated compatibility check. Native protocol and
91
91
  execution evidence have narrower scope:
92
92
 
93
93
  - Optional global-instruction exclusion requires Claude Code **2.1.263+**, enforced by
94
- `compose/corpus_session.py`. The adapter supplies `claudeMdExcludes` through one
94
+ `compose/instructions_session.py`. The adapter supplies `claudeMdExcludes` through one
95
95
  `--settings` argument and refuses a conflicting existing argument. Include/exclude/
96
96
  resume startup preserving project sources was observed on 2026-09-08. The current
97
97
  Codex adapter has no supported global-only exclusion in the verified 0.154.0 protocol;
@@ -104,13 +104,13 @@ execution evidence have narrower scope:
104
104
  and `--mcp-config`; parser/projection verification used 2.1.263. Its allowed tools and
105
105
  effort choices come from the launch bindings. A parser check is not a model-generation
106
106
  receipt.
107
- - Native corpus hooks use the common installed Python carrier and typed event/matcher.
107
+ - Native instructions hooks use the common installed Python carrier and typed event/matcher.
108
108
  Claude plugin delivery was exercised with 2.1.268; Codex inline hook discovery and
109
109
  local-transport execution controls used 0.153.4. Existing host hooks, enablement and
110
110
  native trust remain in force. Discovery alone does not prove execution.
111
111
  - Codex deep-review flag checks used 0.146.0. The Claude `ultracode` keyword trigger was
112
112
  read from the 2.1.220 installed bundle. These feature observations are not refreshed
113
- by the current `--version` reports. Authenticated corpus-agent execution and post-fix
113
+ by the current `--version` reports. Authenticated instructions-agent execution and post-fix
114
114
  authenticated resume remain unverified.
115
115
 
116
116
  ## Codex app and instruction import
@@ -129,7 +129,7 @@ or run `session use`; native task identity is required for task-context receipts
129
129
  Review/apply context instead binds the machine, user, paths, package, working directory
130
130
  and effect-relevant environment. Status receipts describe recorded attempts; `handoff`
131
131
  separates package/runtime verification from helper registration, integrity and usability.
132
- Read-only `try_transaction_lock` in `compose/corpus_transaction.py` permits current
132
+ Read-only `try_transaction_lock` in `compose/instructions_transaction.py` permits current
133
133
  checks without waiting for another writer or creating synchronization state. If it
134
134
  cannot acquire safe synchronization, handoff reports `verification: "deferred"` and
135
135
  unobserved readiness fields as `null`, while status still returns recorded progress.
@@ -141,7 +141,7 @@ skill discovery. The engine does not install or configure the host's file/comman
141
141
 
142
142
  `app session preview/use/off/status` manages **returned task context**, not a new Codex
143
143
  CLI session. This route uses no separate Codex CLI subprocess, no Textual runtime and
144
- no direct model SDK. Corpus Studio needs a terminal; rich UI remains optional. App use
144
+ no direct model SDK. Instructions Studio needs a terminal; rich UI remains optional. App use
145
145
  requires explicit selection, enables no native hooks or agents, and Off cannot retract
146
146
  previously returned text. Registration is off by default and owns only its discovery
147
147
  link, preserving global instruction files and foreign entries.
@@ -154,17 +154,17 @@ consumption placement and trigger descriptions; it is not a deterministic classi
154
154
  Planning/applying requires an installed baseline. Original native files remain intact
155
155
  and may still be loaded independently by the host.
156
156
 
157
- ## Private corpus assets
157
+ ## Private instructions assets
158
158
 
159
- - **Native corpus hooks and agents** require explicit `--corpus-native` and a supported
159
+ - **Native instructions hooks and agents** require explicit `--instructions-native` and a supported
160
160
  installed carrier. Claude agents retain their authored frontmatter in per-item
161
161
  plugins; names are plugin-qualified. Codex agent-semantic translation remains separate
162
162
  work. Neither route registers global hooks by default.
163
163
  - **Codex role templates** (`codex/agents/*.toml`) are carried in the immutable private
164
164
  release. Private installation does not require copies under the native host home.
165
165
  - **Management bootstrap** (`compose/bootstrap/SKILL.md`) and selected requested
166
- procedures are private snapshot resources. **No-corpus mode omits the bootstrap and
167
- corpus instruction text.** The optional app discovery bridge is a separate entry;
166
+ procedures are private snapshot resources. **No-instructions mode omits the bootstrap and
167
+ agent-bios instruction text.** The optional app discovery bridge is a separate entry;
168
168
  registration alone does not select task context.
169
169
 
170
170
  ## Models and optional integrations
@@ -177,7 +177,7 @@ Agent-bios does not install credentials or infer a model account from dependency
177
177
  The selected static path needs Python standard libraries for preparation and acceptance;
178
178
  rendering additionally needs a job-bound Node executable, Playwright module, `pdf-lib`
179
179
  beside that module, and a Chromium-family browser executable. These are not installed
180
- by corpus delivery. The 2026-09-09 job verification used Node 24.19.0, Playwright 1.62.1,
180
+ by instructions delivery. The 2026-09-09 job verification used Node 24.19.0, Playwright 1.62.1,
181
181
  pdf-lib 1.17.1 and browser 152.0.7977.83; it is separate from the current host Node report.
182
182
  - **Deep review** — uses the configured host CLI rather than another core tool. Codex
183
183
  runs its own read-only exec route with a self-contained packet; the frontier model
@@ -190,10 +190,10 @@ Agent-bios does not install credentials or infer a model account from dependency
190
190
  binding, reach and fallback are declared in the launch contract. An unavailable or
191
191
  unauthenticated opposite-family route is reported, not credited as a completed review.
192
192
  - **MCP servers** — user-specific; only a selected capability declaring `mcp-stdio-v1`
193
- is registered by the launcher. No shipped review method requires MCP. App corpus
193
+ is registered by the launcher. No shipped review method requires MCP. App instructions
194
194
  context delivery does not add an MCP server.
195
195
  - **spreadsheet-processing** — an optional skill referenced by the spreadsheet rule
196
- when that corpus is selected. If unavailable, its inline plain-tools/code and real
196
+ when those instructions are selected. If unavailable, its inline plain-tools/code and real
197
197
  spreadsheet-engine validation fallback applies.
198
198
 
199
199
  Host `config.toml`, `settings.json`, `hooks.json` and credentials are untracked,
@@ -208,7 +208,7 @@ python3 -B - <<'PY'
208
208
  import json, os, pathlib, sys
209
209
  repo = pathlib.Path.cwd()
210
210
  sys.path.insert(0, str(repo / 'compose'))
211
- from corpus_setup import dependency_inventory
211
+ from instructions_setup import dependency_inventory
212
212
  for row in dependency_inventory(repo, {**os.environ, 'PYTHONDONTWRITEBYTECODE': '1'}):
213
213
  print(json.dumps({key: row[key] for key in ('id', 'status', 'version', 'path', 'manual_reason')}, ensure_ascii=False))
214
214
  PY
@@ -218,7 +218,7 @@ Inspect the installed private state using this checkout's runtime:
218
218
 
219
219
  ```bash
220
220
  bash install.sh verify
221
- bash install.sh corpus status --json
221
+ bash install.sh instructions status --json
222
222
  bash install.sh app status --json
223
223
  ```
224
224
 
@@ -247,7 +247,7 @@ machine inventory:
247
247
  ```bash
248
248
  python3 -B - <<'PY'
249
249
  import pathlib
250
- paths = list(pathlib.Path('compose').glob('corpus*.py')) + [pathlib.Path('launch/agent-launch.py')]
250
+ paths = list(pathlib.Path('compose').glob('instructions*.py')) + [pathlib.Path('launch/agent-launch.py')]
251
251
  for path in paths:
252
252
  compile(path.read_text(), str(path), 'exec')
253
253
  PY
@@ -264,8 +264,8 @@ zsh -n launch/agent-launch.zsh
264
264
  | `launch/provision-venv.sh` | Textual root pin, `JSONSCHEMA_PIN` and explicit managed package installation |
265
265
  | `gates/build-ui-runtime.py` | author-side bundle generation and offline check/self-test |
266
266
  | `compose/ui_runtime/manifest.json` | generated exact UI wheel inventory, versions, hashes and licenses |
267
- | `compose/corpus_ui_runtime.py` | offline verification, process-lifetime extraction and release |
268
- | `compose/corpus_setup.py` | shared SetupController, local inventory and reviewed dependency recipes |
267
+ | `compose/instructions_ui_runtime.py` | offline verification, process-lifetime extraction and release |
268
+ | `compose/instructions_setup.py` | shared SetupController, local inventory and reviewed dependency recipes |
269
269
  | `package.json` and runtime validators | supported platforms and required runtime minimums |
270
270
  | guide `Environment Binding` and launch profile | role/model bindings and feature-specific host evidence |
271
271
  | guide `Evidence Base` | measured behavior and numeric defaults |
package/INSTALL.md CHANGED
@@ -74,8 +74,8 @@ resolved paths remain inside the source; do not follow links to outside files:
74
74
 
75
75
  - `INSTALL.md`
76
76
  - `install.sh`
77
- - `compose/corpus_setup_cli.py`
78
- - `compose/corpus_setup.py`
77
+ - `compose/instructions_setup_cli.py`
78
+ - `compose/instructions_setup.py`
79
79
  - `compose/setup/START.md`
80
80
 
81
81
  If they are missing, explain that the selected public revision/package does not
@@ -105,8 +105,8 @@ Require a successful JSON response with `kind: "agent-bios-setup-start"`,
105
105
  `setup_argv`, keeping the same source, working directory and reviewed execution
106
106
  context. Do not fall back to a PATH command if validation fails.
107
107
 
108
- The detailed guide collects corpus, optional dependencies, app connection and
108
+ The detailed guide collects instructions, optional dependencies, app connection and
109
109
  instruction-source choices, then prepares the exact review for authorized Apply.
110
110
  Use the existing authorization for concrete effects already accepted by the user.
111
111
  Preserve global/project `AGENTS.md` and `CLAUDE.md`. Installation and app connection
112
- do not authorize corpus content in this task; that remains a separate explicit use.
112
+ do not authorize instructions content in this task; that remains a separate explicit use.
package/README.md CHANGED
@@ -5,21 +5,48 @@
5
5
  Build an instruction library you can inspect, edit, and reuse. Choose what each
6
6
  CLI session or Codex app task uses, while preserving your existing global instruction files.
7
7
 
8
- [Quick start](#quick-start) · [Corpus Studio](#your-instruction-library) · [How it works](#how-sessions-work) · [Understand!](#understand-the-reasoning) · [Documentation](#documentation) · [한국어](ko/README.md)
8
+ [0.19.2 release notes](docs/releases/0.19.2.md)
9
9
 
10
- ![Corpus Studio showing a guide-linked rule and an unapplied on/off choice](docs/assets/corpus-studio.svg)
10
+ ## Purpose
11
11
 
12
- *Actual 0.18.0 Studio UI, captured with Textual enabled and the bundled corpus
13
- in an isolated test environment.*
12
+ <!-- product-purpose:start -->
13
+ agent-bios exists to let workers compose, share, and inherit team work environments
14
+ from Instructions, Domain knowledge, and Decision memory, so they can perform
15
+ their roles within the standards and context of their team, industry, and organization.
16
+
17
+ A team is the basic unit for selecting, adopting, and sharing a work environment.
18
+
19
+ Workers should be able to select an environment appropriate to their role and
20
+ team, collaborate from shared standards and decision context, and continue
21
+ the work when a worker, model, session, or device changes. Shared context does
22
+ not require identical outputs or erase personal, team, and organizational boundaries.
23
+ <!-- product-purpose:end -->
24
+
25
+ The current service provides the Instructions library and host launch/delivery
26
+ integration. Shared environment editions, Domain knowledge, and Decision memory
27
+ are the design direction; this purpose statement does not claim they are shipped.
28
+
29
+ [Quick start](#quick-start) · [Instructions Studio](#your-instruction-library) · [How it works](#how-sessions-work) · [Understand!](#understand-the-reasoning) · [Documentation](#documentation) · [한국어](ko/README.md)
30
+
31
+ ![Studio showing a guide-linked rule and an unapplied on/off choice](docs/assets/instructions-studio.svg)
32
+
33
+ *Actual 0.18.0 UI, captured with Textual enabled and the bundled instructions
34
+ in an isolated test environment. This earlier capture retains its Corpus Studio title;
35
+ the current UI is named Instructions Studio.*
14
36
 
15
37
  ## Make your instructions your own
16
38
 
17
- agent-bios ships a starting library of rules, guides, and procedures, called a
18
- **corpus**. You decide which parts belong in your working environment.
39
+ agent-bios ships **Instructions**: rules, guides, and procedures for how you work.
40
+ You decide which parts belong in your working environment. The CLI command is
41
+ `instructions`, and the library UI is named **Instructions Studio**.
42
+
43
+ These names apply to this source revision. If your installed version does not
44
+ recognize `agent-bios instructions`, use `agent-bios corpus`; this revision also
45
+ accepts that older command name. See [compatibility](docs/instructions-compatibility.md).
19
46
 
20
47
  | What you want to do | What agent-bios provides |
21
48
  | --- | --- |
22
- | See what your instructions say | Browse and search documents in Corpus Studio; follow a rule's links to its guides. |
49
+ | See what your instructions say | Browse and search documents in Instructions Studio; follow a rule's links to its guides. |
23
50
  | Adapt them to your work | Edit supplied items, create personal ones, and choose their delivery method. |
24
51
  | Choose what a session uses | Switch individual items on or off without deleting their content or edits. |
25
52
  | Recover the starting point | Restore supplied content, recover personal items, or preview a full reset. |
@@ -30,7 +57,7 @@ It does not train the model or guarantee that the model follows every instructio
30
57
  ## Quick start
31
58
 
32
59
  Use the terminal installer or set up through a Codex app conversation. Both offer
33
- language, dependency, corpus and optional app/import choices.
60
+ language, dependency, instructions and optional app/import choices.
34
61
  See [setup and prerequisites](docs/setup.md).
35
62
 
36
63
  ### In a terminal
@@ -39,13 +66,13 @@ You need **macOS or Linux**, **Bash**, **Python 3.11+**, and **Node.js 18+ with
39
66
  for package installation. Run:
40
67
 
41
68
  ```bash
42
- npm install -g agent-bios@0.19.1
69
+ npm install -g agent-bios@0.19.0
43
70
  agent-bios install
44
71
  ```
45
72
 
46
73
  The installer opens a guided terminal UI with English, Korean and Japanese. Its
47
74
  verified Textual bundle is included; a separate UI installation is unnecessary.
48
- Choose only the dependencies and corpus you want. [Full setup options →](docs/setup.md)
75
+ Choose only the dependencies and instructions you want. [Full setup options →](docs/setup.md)
49
76
 
50
77
  To launch a CLI session, install and authenticate that host CLI, then run this from
51
78
  your project:
@@ -60,9 +87,9 @@ Use `codex` instead of `claude` for a Codex CLI session.
60
87
  2. Review the model, review setup, and permissions. **Some presets request
61
88
  permission bypass**; select settings appropriate for your project.
62
89
  3. Start the session. Choose **Software Engineer / Vanilla** to use the host's
63
- native setup without an agent-bios corpus snapshot.
90
+ native setup without an agent-bios instructions snapshot.
64
91
 
65
- Open **Corpus Studio** from the launcher or run `agent-bios corpus` to inspect the
92
+ Open **Instructions Studio** from the launcher or run `agent-bios instructions` to inspect the
66
93
  library. `agent-bios status` shows the installed private release and its location.
67
94
 
68
95
  <details>
@@ -96,18 +123,18 @@ Install https://github.com/kangminlee-maker/agent-bios
96
123
  ```
97
124
 
98
125
  The agent follows [INSTALL.md](INSTALL.md), obtains a fixed source revision, and
99
- asks for English, 한국어 or 日本語. Choose dependencies, no active corpus or specific
100
- corpus, and optional app connection or instruction-file capture. Review the effects
126
+ asks for English, 한국어 or 日本語. Choose dependencies, no active instructions or specific
127
+ instructions, and optional app connection or instruction-file capture. Review the effects
101
128
  before Apply. You do not need to supply a local path or install Codex CLI.
102
129
 
103
130
  Once the registered command appears in the app, use `$agent-bios` for setup or management.
104
- To add corpus to a task, explicitly ask it to use your chosen corpus there.
105
- Installation and opening Corpus Studio do not activate task context.
106
- [App use, off, and personal instruction import →](docs/setup.md#use-corpus-in-a-codex-app-task)
131
+ To add instructions to a task, explicitly ask it to use your chosen instructions there.
132
+ Installation and opening Instructions Studio do not activate task context.
133
+ [App use, off, and personal instruction import →](docs/setup.md#use-instructions-in-a-codex-app-task)
107
134
 
108
135
  ## Your instruction library
109
136
 
110
- Open **Corpus Studio** in the launcher, or run `agent-bios corpus`.
137
+ Open **Instructions Studio** in the launcher, or run `agent-bios instructions`.
111
138
  In the app, `$agent-bios` can manage the same library through conversation.
112
139
 
113
140
  - **Read as you navigate.** Arrow keys move between reading controls and update
@@ -128,7 +155,7 @@ Individual on/off choices take precedence over default domain/core selections.
128
155
  Off is not deletion: content and edits remain available, including for learning.
129
156
  Updates retain those choices; a full reset returns to installed defaults.
130
157
 
131
- [Corpus controls, keyboard navigation, delivery methods, and included guides →](docs/corpus.md)
158
+ [Instructions controls, keyboard navigation, delivery methods, and included guides →](docs/instructions.md)
132
159
 
133
160
  ## How sessions work
134
161
 
@@ -149,8 +176,8 @@ does not. Project instructions and prior conversation content are separate.
149
176
 
150
177
  ## Understand the reasoning
151
178
 
152
- Choose **Understand!** in the launcher to explore why the corpus is written the
153
- way it is. Select a coherent learning bundle rather than memorizing separate files.
179
+ Choose **Understand!** in the launcher to explore why the instructions are written the
180
+ way they are. Select a coherent learning bundle rather than memorizing separate files.
154
181
 
155
182
  The tutor chooses a small set of core learning points and tracks questions by their
156
183
  source bullet. No bullet receives more than ten questions, including follow-ups.
@@ -187,29 +214,29 @@ requires your confirmation.
187
214
  | When you need more detail | Read |
188
215
  | --- | --- |
189
216
  | Install, connect the app, or import existing instructions | [Setup](docs/setup.md) |
190
- | Author, enable, restore, or inspect corpus items | [Corpus](docs/corpus.md) |
217
+ | Author, enable, restore, or inspect instructions items | [Instructions](docs/instructions.md) |
191
218
  | Understand snapshots, storage, and session evidence | [Session model](docs/session-model.md) |
192
219
  | Migrate, reset, or resolve installation conflicts | [Recovery](docs/recovery.md) |
193
220
  | Configure presets, globals, shell connection, native hooks, or review | [Advanced launch](docs/advanced-launch.md) |
194
- | Learn the corpus and preserve a discovery | [Understand!](docs/understand.md) |
221
+ | Learn the instructions and preserve a discovery | [Understand!](docs/understand.md) |
195
222
  | Check prerequisites and optional tools | [Dependencies](DEPENDENCIES.md) |
196
223
  | Develop this repository | [Contributing](CONTRIBUTING.md) — requires a checkout |
197
224
 
198
- Use `agent-bios help` and `agent-bios corpus --help` for command discovery.
225
+ Use `agent-bios help` and `agent-bios instructions --help` for command discovery.
199
226
  Source references: [delivery surfaces](SURFACES.md), [network contract](ENDPOINTS.md),
200
227
  and [terminology](LEXICON.md).
201
228
 
202
229
  ## Adopting elsewhere
203
230
 
204
231
  Review the `(private)` bindings and environment-specific dependencies before
205
- adopting the defaults. Keep personal adjustments in Corpus Studio, or follow
232
+ adopting the defaults. Keep personal adjustments in Instructions Studio, or follow
206
233
  [the source-authoring workflow](CONTRIBUTING.md#adopting-elsewhere) when changing
207
234
  what the package ships.
208
235
 
209
236
  ## Scope
210
237
 
211
238
  The package contains instruction sources and runtime machinery, not your
212
- personal corpus state, learning events, session pins, credentials, or native settings.
239
+ personal instructions state, learning events, session pins, credentials, or native settings.
213
240
 
214
241
  ## License
215
242
 
package/claude/CLAUDE.md CHANGED
@@ -90,7 +90,7 @@
90
90
  - For composing a prompt, packet, or tool description aimed at a specific model family — including cross-family review dispatch, porting a prompt written for an older model, or choosing a reasoning-effort level for a model family — read and use `${CLAUDE_CONFIG_DIR:-$HOME/.claude}/guides/gpt-prompting.md` for gpt-family targets and `${CLAUDE_CONFIG_DIR:-$HOME/.claude}/guides/claude-prompting.md` for claude-family targets as scoped extensions of this section.
91
91
  - Allocate models by difficulty × blast radius, not phase name; when implementation ran on a cheaper tier, compensate by raising reviewer effort or adding a reviewer kind — never economize on implementation and verification at once.
92
92
  - Judge a review by how much independence it actually bought, per reviewer and in this order: different provider, then different model, then strictly higher effort, then the two-perspective floor. A lower effort earns nothing — cheaper is not another perspective. Isolation is a gate rather than a rung: a reviewer you cannot show ran in a fresh context is not a weak review but no review, so exclude it instead of grading it low. Several ready methods are coverage, not proof the perspectives differed; and a clean verdict is PROPOSED until a receipt evidences a fresh dispatch of the declared packet on the exact seat, since a model echo is not evidence.
93
- - When the user asks for design AND two or more providers are reachable at frontier tier, run dual-provider frontier design drafts: two independent drafts from the same blind packet, one per provider, compared and synthesized into the working draft. The consent gate is about metered spend, not the fan-out: a provider reached via an OAuth session (subscription-covered, no marginal cost) proceeds WITHOUT asking — if a non-main-context OAuth frontier provider exists, just run the dual-provider design; do not ask. Explicit per-request approval (never standing) is required ONLY before dispatching to a provider reachable solely via a metered API key, and it approves that spend. If withholding un-approved API spend leaves fewer than two providers, run single-provider rather than blocking the design on approval. Inject the corpus design principles (concept economy, LLM/capability boundary, staged workflow) into every dispatched design packet — an external model does not load this corpus.
93
+ - When the user asks for design AND two or more providers are reachable at frontier tier, run dual-provider frontier design drafts: two independent drafts from the same blind packet, one per provider, compared and synthesized into the working draft. The consent gate is about metered spend, not the fan-out: a provider reached via an OAuth session (subscription-covered, no marginal cost) proceeds WITHOUT asking — if a non-main-context OAuth frontier provider exists, just run the dual-provider design; do not ask. Explicit per-request approval (never standing) is required ONLY before dispatching to a provider reachable solely via a metered API key, and it approves that spend. If withholding un-approved API spend leaves fewer than two providers, run single-provider rather than blocking the design on approval. Inject the instructions design principles (concept economy, LLM/capability boundary, staged workflow) into every dispatched design packet — an external model does not load these instructions.
94
94
  - Never retry-storm a live rate limit: give unattended batches you author a code-level circuit breaker with per-item completion tracking (thresholds, backoff, and dead-letter rules in the guide); for third-party dispatchers, confirm equivalent protection exists or attend the run.
95
95
  - On any resumed, cleared, or relocated session, re-verify where you are (pwd; in a repo, branch and HEAD) before acting on prior-session assumptions — against the pinned handoff state when one exists.
96
96
 
@@ -49,7 +49,7 @@ Claude.
49
49
 
50
50
  Use the shared recipe and checklist together with the section for the model being
51
51
  prompted, even when a subagent uses a different model from the main. Model-specific
52
- tuning preserves the corpus's permission boundaries and required verification.
52
+ tuning preserves the instructions' permission boundaries and required verification.
53
53
 
54
54
  | Target | Apply |
55
55
  | --- | --- |
@@ -35,7 +35,7 @@ Scoped extension of the global Multi-Model Workflow rules. Rules use portable ro
35
35
 
36
36
  Main-context pollution is usually costlier than spawn overhead. Apply these gates in order; the first that fires decides:
37
37
 
38
- 1. **Independence:** verification and review go outside your own reasoning, not merely outside your conversation. A child carries the standing corpus on both hosts, except Claude's built-in `Explore` and `Plan`, which omit the CLAUDE.md hierarchy. Otherwise a Claude child starts fresh, while Codex `spawn_agent` forks by default — `fork_turns` defaults to `all`, so the child also holds the parent's turn input unless the call passes `none` or a turn count. What a spawn buys is graded by the seat — see Review Independence — never by the fact that it happened.
38
+ 1. **Independence:** verification and review go outside your own reasoning, not merely outside your conversation. A child carries the standing instructions on both hosts, except Claude's built-in `Explore` and `Plan`, which omit the CLAUDE.md hierarchy. Otherwise a Claude child starts fresh, while Codex `spawn_agent` forks by default — `fork_turns` defaults to `all`, so the child also holds the parent's turn input unless the call passes `none` or a turn count. What a spawn buys is graded by the seat — see Review Independence — never by the fact that it happened.
39
39
  Verify a spawn from the artifact: Claude writes the child to its own `agent-<id>.jsonl` beside the session transcript; Codex writes a rollout whose header carries `parent_thread_id`, `agent_nickname`, `agent_path`, `agent_role`. Codex's `--json` stream cannot see a spawn at all — its `collab_tool_call` object is identical whether or not one occurred.
40
40
  2. **Parallelism:** independent items spawn in parallel with per-item tracking.
41
41
  3. **Residual context:** spawn work whose working log is much larger than the conclusion the main needs, such as broad reads, searches, tests, or implementation bursts.
@@ -70,7 +70,7 @@ Delegate execution, not decisions. A unit is delegable only when it is decision-
70
70
  - Idle/progress notifications are hypotheses; verify repo artifacts before re-dispatch. An idle signal is liveness decoupled from the report: a subagent can go idle without ever delivering its result, so idle-without-report is not done — request the report explicitly rather than waiting. Cross-reset state belongs in files, not task boards or transcripts. When polling concurrent async jobs, pin the exact id/handle received at dispatch — a "latest" convenience selector can silently point at a sibling job and return plausible-but-wrong results.
71
71
  - Give reviewers/subagents a read-only diff, snapshot, or isolated worktree — not the live tree the main is editing — and forbid destructive git ops (checkout --, reset --hard, stash, clean) on any tree with uncommitted work; re-verify tree integrity before trusting results produced mid-edit.
72
72
  - Codex `spawn_agent` decides how much of the parent crosses: `fork_turns` defaults to `all`, and takes `none` or a turn count. A `SubagentStart` hook there receives `agent_type` and may return `continue: false`, so a tier rule can be enforced rather than stated.
73
- - No per-spawn corpus suppression exists on either host: the subagent definition carries model and effort, not scope. Excluding the standing instructions is a process-level act — `claude --setting-sources ''`, or `CODEX_HOME` pointed at a directory holding only `auth.json` — and it removes the tier definitions with them, so a corpus-free reader and a pinned tier cannot come from one process. An emptied `CODEX_HOME` without `auth.json` fails 401; skills still load.
73
+ - No per-spawn instructions suppression exists on either host: the subagent definition carries model and effort, not scope. Excluding the standing instructions is a process-level act — `claude --setting-sources ''`, or `CODEX_HOME` pointed at a directory holding only `auth.json` — and it removes the tier definitions with them, so a reader without those instructions and a pinned tier cannot come from one process. An emptied `CODEX_HOME` without `auth.json` fails 401; skills still load.
74
74
  - Review cost scales with the diff, so layered review preserves delegation savings. Lower reviewer tier before dropping a review kind.
75
75
 
76
76
  ## Driving Codex CLI Directly
@@ -143,7 +143,7 @@ How much independence a review actually bought, as an ordinal grade per reviewer
143
143
 
144
144
  - Trigger: the task is design — high-level shape and implementation process, before any code — AND two or more providers are reachable at frontier tier. Reachability via an OAuth session is subscription-covered — no marginal spend, so no approval and no question: if a non-main-context OAuth frontier provider exists, proceed with the dual-provider design directly. The consent gate applies ONLY to a provider reachable solely via a metered API key: dispatching to it needs the user's explicit per-request approval of that spend (per-request, not standing — an old approval does not carry to the next design). If the only way to reach a second provider is un-approved metered API spend, stay single-provider rather than blocking the design.
145
145
  - Mechanics: compose ONE blind packet (evidence, constraints, rubric, neutral alternatives — the escalation-gate packet shape) and dispatch it unchanged to one frontier-tier model per provider; drafts stay independent — neither sees the other's output. Then adjudicate: compare the two dual-provider frontier design drafts against the rubric, take the winner as the skeleton, graft the loser's superior parts, and record what differed and why the synthesis chose as it did (FRONTIER disposition line).
146
- - Packet injection: a dispatched designer is hermetic — it reads only its packet and never loads this corpus. Inject the design principles the corpus would have supplied: concept economy (reuse/extend/rename/split, compact concept graph), the LLM/tools-code capability boundary, the staged design rules (smallest viable path, falsifiable done-when), and any domain-specific principles the design touches. A draft produced without the principles is not comparable to one produced with them.
146
+ - Packet injection: a dispatched designer is hermetic — it reads only its packet and never loads these instructions. Inject the design principles the instructions would have supplied: concept economy (reuse/extend/rename/split, compact concept graph), the LLM/tools-code capability boundary, the staged design rules (smallest viable path, falsifiable done-when), and any domain-specific principles the design touches. A draft produced without the principles is not comparable to one produced with them.
147
147
 
148
148
  ## Unattended Batch Safety
149
149
 
@@ -17,6 +17,9 @@ core_rules:
17
17
 
18
18
  # Documentation Hygiene
19
19
 
20
+ Before writing, revising, or translating Korean prose, read and apply
21
+ `${CLAUDE_CONFIG_DIR:-$HOME/.claude}/guides/korean-writing.md` in full.
22
+
20
23
  A scoped extension of the global Documentation Hygiene section. The subject is placement: **prose
21
24
  about the past and prose about the present need different addresses.**
22
25
 
@@ -225,7 +225,7 @@ that sample, not Astra measurements or promised gains on another workload.
225
225
 
226
226
  The GPT-5.6 section is derived from `prompt-guidance-gpt-5p6`; the GPT-6 Astra
227
227
  section from `model-guidance-gpt-6-astra`. The shared recipe retains task, evidence,
228
- tool, and validation practices from the GPT-5.6 guidance and the corpus; model
228
+ tool, and validation practices from the GPT-5.6 guidance and the instructions; model
229
229
  behavior claims belong only to their matching section. `source_pins` records the
230
230
  exact bytes used for this derivation so later vendor edits can be detected.
231
231
 
@@ -0,0 +1,153 @@
1
+ ---
2
+ guide_id: korean-writing
3
+ language: en
4
+ status: active
5
+ description: Before writing, revising, or translating Korean prose, you must read and apply this entire guide, including for responses, documents, slide wording, and UI copy.
6
+ use_when:
7
+ - writing, revising, or translating Korean responses or documents
8
+ - composing Korean slide text, headlines, buttons, or status labels
9
+ core_rules:
10
+ - Consult the full guide before Korean writing and compare the result with the source and actual state.
11
+ - Connect the central judgment to evidence while preserving distinct concepts, conditions, and uncertainty.
12
+ - Distinguish proposals, available actions, and completed states; match action copy to actual behavior.
13
+ ---
14
+
15
+ # Writing in Korean
16
+
17
+ Before writing, revising, or translating Korean prose, read and apply this entire guide.
18
+ If the same complete text is already in the current task context, no duplicate file read is needed.
19
+ Apply it to responses, reports, notices, slide wording, and UI copy while respecting the requested
20
+ length, format, and register. Do not force a headline or lengthy evidence onto a short response.
21
+ Preserve quotations and identifiers that must remain exact.
22
+
23
+ First decide what the reader needs to understand or judge. Connect the supporting evidence and
24
+ conditions, and preserve conceptual distinctions and factual scope when shortening the text.
25
+ The Korean golden sentences below are hypothetical teaching examples, not real facts or fixed
26
+ templates. Apply their preservation of meaning, rather than copying sentence counts, headings,
27
+ or endings.
28
+
29
+ ## 1. Define the question and central judgment
30
+
31
+ Make each fact, comparison, and explanation's role in the central judgment clear. Split independent
32
+ questions, or explain why they belong together.
33
+
34
+ - Avoid: “문의가 늘었다. 담당자는 세 명이다. 안내 문서를 개편했다.”
35
+ - Golden: “반복 문의를 줄이기 위해 안내 문서를 개편했다. 담당자 세 명이 자주 받는 질문을 모아 답변을 보강했다.”
36
+
37
+ Use this connection only when the purpose and work described in the golden are supported.
38
+ Do not invent purpose or activities from a list of facts alone.
39
+
40
+ ## 2. Make the subject and central judgment visible in the headline
41
+
42
+ Avoid references that require earlier text or headlines that only preview a count. The argument
43
+ should connect when headlines are read alone. Do not force a conclusion onto an overview,
44
+ definition, or transition.
45
+
46
+ - Avoid: “세 가지 개선 사항”
47
+ - Golden: “신청 절차를 줄여 사용자의 입력 부담을 낮춘다”
48
+
49
+ For a definition, a role-revealing title such as “신청 자격의 정의” is also appropriate.
50
+
51
+ ## 3. Keep claims within the evidence's scope and certainty
52
+
53
+ Distinguish hypotheses from confirmed facts, examples from actual selections, and temporal order
54
+ from causality. Retain uncertainty where the source has not established a relationship.
55
+
56
+ - Avoid: “안내 문서 개편으로 문의가 감소했다.”
57
+ - Golden: “안내 문서 개편 후 문의가 감소했다. 다만 같은 기간 이용자 수도 줄어, 개편의 효과인지는 확인되지 않았다.”
58
+
59
+ Mention the decline in users only when supported too. Do not invent another fact to explain an
60
+ unconfirmed cause.
61
+
62
+ ## 4. Use the same name for the same concept and distinguish different concepts
63
+
64
+ Do not alternate synonyms merely for stylistic variety. Even when shortening an explanation,
65
+ retain each independent concept's name, definition, and difference from others.
66
+
67
+ - Avoid: “활성 사용자는 주간 이용자를 뜻한다. 참여 고객은 이번 주 120명이다.”
68
+ - Golden: “활성 사용자는 일주일 동안 한 번 이상 서비스를 이용한 사용자다. 이번 주 활성 사용자는 120명이다.”
69
+
70
+ Use the source or agreed definition. Ambiguous terminology does not authorize a new threshold.
71
+
72
+ ## 5. Preserve the subject and action even in short wording
73
+
74
+ Qualify ambiguous words such as scope, criteria, or completion with the object the reader needs.
75
+ Do not fill gaps in compressed wording with meaning absent from the source.
76
+
77
+ - Avoid: “통과 범위와 보완 항목을 함께 남깁니다.”
78
+ - Golden: “검토를 통과한 범위와 보완할 항목을 함께 기록합니다.”
79
+
80
+ Name each state the reader must distinguish directly.
81
+
82
+ - Avoid: “0처럼 보이는 누락을 구분합니다.”
83
+ - Golden: “값이 누락된 경우와 실제 금액이 0인 경우를 구분합니다.”
84
+
85
+ ## 6. State relationships between concepts explicitly
86
+
87
+ Make clear what causes, conditions, or forms part of what, and what is compared with what.
88
+ Do not add unsupported causality, sequence, or superiority to create a connection.
89
+
90
+ - Avoid: “교육 참여와 배포 권한은 연결됩니다.”
91
+ - Golden: “교육 이수는 배포 권한을 신청하기 위한 조건입니다. 교육을 이수해도 권한이 자동으로 부여되지는 않습니다.”
92
+
93
+ ## 7. Move from judgment to evidence
94
+
95
+ Present the central judgment and necessary premises, then the supporting explanation. Distinguish
96
+ new implications derived from the explanation and avoid repeating the same content in several places.
97
+
98
+ - Avoid: “연동 시험 두 건이 남았다. 금요일에 시험 환경을 사용할 수 있다. 출시 일정 조정이 필요하다.”
99
+ - Golden: “출시를 다음 주로 미뤄야 한다. 필수 연동 시험 두 건이 남아 있으며, 시험 환경은 이번 주 금요일부터 사용할 수 있다.”
100
+
101
+ This example assumes the release timing and mandatory tests are established. Do not settle a
102
+ schedule or condition absent from the source.
103
+
104
+ ## 8. Keep conditions, exceptions, and scope close to the claim
105
+
106
+ Do not relegate interpretation-changing conditions to incidental information. Align units, periods,
107
+ subjects, and denominators when comparing numbers; disclose differences in the comparison bases.
108
+
109
+ - Avoid: “모든 사용자는 신청을 취소할 수 있다.”
110
+ - Golden: “사용자는 승인 전까지 신청을 취소할 수 있다. 승인 후에는 담당자에게 취소를 요청해야 한다.”
111
+
112
+ ## 9. Distinguish proposals, available actions, and completed states
113
+
114
+ Do not describe a proposed procedure as an implemented feature. Name what has completed and
115
+ keep review, approval, finalization, and transmission as distinct states.
116
+
117
+ - Avoid, on a proposal screen before implementation: “원천 자료부터 회계 시스템 입력용 집계까지 검토합니다.”
118
+ - Golden: “원천 자료부터 회계 시스템 입력용 집계까지, 검토 절차를 제안합니다.”
119
+
120
+ - Avoid: “검토가 완료되어 회계 처리가 끝났습니다.”
121
+ - Golden: “검토를 완료했습니다. 회계 승인과 결산 확정 여부는 별도로 확인해야 합니다.”
122
+
123
+ ## 10. Match action copy to actual behavior
124
+
125
+ Buttons and links should say what the user will do or see. Distinguish viewing, selecting, saving,
126
+ and submitting. Do not promise a result that the click alone does not achieve.
127
+
128
+ - Avoid, on a button opening a scope explanation: “검토 시작”
129
+ - Golden: “검토 범위 안내 보기”
130
+
131
+ If the destination actually allows selection, use “검토 기간·상품 선택”.
132
+
133
+ ## 11. Remove repetition while retaining necessary explanation
134
+
135
+ Do not delete essential evidence, definitions, or conditions for brevity. Do not add claims or
136
+ repeat statements to fill space. Separate sentences with different roles, such as definition
137
+ and interpretation.
138
+
139
+ - Avoid: “처리 시간을 단축하고 더 빠르게 처리하기 위해 중복 확인 절차를 없애 처리 속도를 개선한다.”
140
+ - Golden: “처리 시간을 줄이기 위해 같은 정보를 두 번 확인하는 절차를 한 번으로 합친다.”
141
+
142
+ ## 12. Compare the finished text with the source and actual state
143
+
144
+ Check that key concepts, figures, conditions, subjects, and relationships survive. For features
145
+ and procedures, also verify available behavior and current state. The headlines and body should
146
+ communicate the argument without the author's additional explanation.
147
+
148
+ - Source: “시범 운영에 참여한 20개 팀 중 12개 팀이 다음 분기에도 사용할 의향이 있다고 답했다.”
149
+ - Avoid: “고객의 60%가 재계약을 확정했다.”
150
+ - Golden: “시범 운영에 참여한 20개 팀 중 12개 팀(60%)이 다음 분기에도 사용할 의향을 밝혔다.”
151
+
152
+ Preserve the subject, denominator, and response meaning when summarizing. Do not turn intent
153
+ to use into a confirmed renewal.