agent-bios 0.19.0 → 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 +58 -28
  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 +58 -28
  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 -1841
  36. package/compose/corpus_session.py +16 -848
  37. package/compose/corpus_setup.py +16 -670
  38. package/compose/corpus_setup_cli.py +15 -577
  39. package/compose/corpus_setup_i18n.py +20 -318
  40. package/compose/corpus_setup_ui.py +18 -631
  41. package/compose/corpus_store.py +16 -1621
  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 -520
  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 +24 -13
  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 +8 -8
  69. package/docs/releases/0.19.2.md +38 -0
  70. package/docs/session-model.md +23 -20
  71. package/docs/setup.md +42 -25
  72. package/docs/understand.md +57 -9
  73. package/install.sh +70 -69
  74. package/launch/agent-launch.py +306 -295
  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
@@ -4,7 +4,7 @@
4
4
  "mode.swe.label" = "Software Engineer"
5
5
  "mode.swe.description" = "기존 프로젝트에서 CLI의 기본 지침 로딩 방식으로 작업합니다. Vanilla는 런처의 추가 설정 없이 시작하고, Custom에서는 모델과 리뷰 방식을 직접 고릅니다."
6
6
  "mode.builder.label" = "Builder"
7
- "mode.builder.description" = "설치된 코퍼스를 활용하는 일반 개발 모드입니다. Balanced·Deep review·Fast batch·Solo 또는 Custom에서 메인 모델, 위임, 리뷰, 실행 권한을 고릅니다."
7
+ "mode.builder.description" = "설치된 지침을 활용하는 일반 개발 모드입니다. Balanced·Deep review·Fast batch·Solo 또는 Custom에서 메인 모델, 위임, 리뷰, 실행 권한을 고릅니다."
8
8
  "mode.distill.label" = "Session distill"
9
9
  "mode.distill.description" = "지난 AI 작업 대화를 살펴보고 공통 지침에 반영할 교훈을 제안합니다. 상태 확인과 실행 메뉴를 엽니다. 현재 이 작업에는 agent-bios 소스 저장소가 필요합니다."
10
10
 
@@ -18,7 +18,7 @@
18
18
  "preset.custom.label" = "직접 설정 (Custom)"
19
19
 
20
20
  "language.label" = "언어"
21
- "language.description" = "TUI 언어를 선택합니다 (English / 한국어 / 日本語). AI가 소비하는 코퍼스는 영어 그대로이며, 런처 화면만 바뀝니다."
21
+ "language.description" = "TUI 언어를 선택합니다 (English / 한국어 / 日本語). AI가 소비하는 지침은 영어 그대로이며, 런처 화면만 바뀝니다."
22
22
  "language.title" = "언어"
23
23
 
24
24
  "shell.title" = "셸 연결"
@@ -28,12 +28,12 @@
28
28
  "shell.restore" = "연결 복원"
29
29
  "shell.restore.description" = ".zshrc를 백업하고 관리 구간 하나를 추가합니다. 인자가 있거나 비대화형인 호출은 추가 권한 옵션 없이 원본 CLI로 전달합니다."
30
30
  "shell.remove" = "연결 제거"
31
- "shell.remove.description" = "agent-bios의 셸 연결만 제거합니다. 다른 셸 설정과 corpus 항목은 그대로 보존합니다."
31
+ "shell.remove.description" = "agent-bios의 셸 연결만 제거합니다. 다른 셸 설정과 지침 항목은 그대로 보존합니다."
32
32
  "shell.back" = "셸 연결을 변경하지 않고 돌아갑니다."
33
33
  "shell.confirm" = "셸 연결 변경을 적용할까요?"
34
34
  "shell.cancel" = "취소"
35
35
  "shell.apply" = "적용"
36
- "shell.scope" = "zsh 시작 파일의 연결 구간과 관리 스크립트만 변경합니다. 전역 AGENTS.md/CLAUDE.md, 프로젝트 파일, corpus 내용은 바꾸지 않습니다."
36
+ "shell.scope" = "zsh 시작 파일의 연결 구간과 관리 스크립트만 변경합니다. 전역 AGENTS.md/CLAUDE.md, 프로젝트 파일, 지침 내용은 바꾸지 않습니다."
37
37
  "shell.preview" = "미리보기만 실행했습니다. 셸 파일은 변경하지 않았습니다."
38
38
  "shell.restored" = "연결을 복원했습니다. 새 터미널을 열거나 .zshrc를 source하여 불러오세요."
39
39
  "shell.removed" = "연결을 제거했습니다. 이미 열린 셸도 다음 명령에서 관리 래퍼를 해제합니다. 새 터미널 역시 연결 없이 시작합니다."
@@ -41,36 +41,36 @@
41
41
  "language.ko.description" = "런처 화면을 한국어로 표시합니다."
42
42
  "language.ja.description" = "ランチャーの画面を日本語で表示します。"
43
43
 
44
- "corpus.label" = "코퍼스 패키지"
45
- "corpus.private.title" = "Corpus Studio"
46
- "corpus.private.description" = "개인 corpus 항목을 조회·생성·편집·삭제·복원합니다. 변경은 다음 활성 세션에 반영되고, 실행 중인 세션은 고정한 내용을 유지합니다."
47
- "corpus.private.relationship" = "Corpus는 별도 저장소에 보관됩니다. Builder는 선택한 사본을 활성화하고, 기본 CLI와 Vanilla에는 자동 추가하지 않습니다. 기존 전역 설치는 별도 이전이 필요합니다."
48
- "corpus.private.vanilla" = "기본 CLI와 사용자가 설정한 개인·프로젝트 지시문을 사용합니다. Private agent-bios corpus, 스킬 설명, 실행 설정은 추가하지 않습니다."
49
- "corpus.description" = "AI가 참고할 작업 지침을 고릅니다. 개발·여러 에이전트의 협업·스프레드시트 같은 작업별 묶음입니다. 패키지를 고른 뒤 ‘선택 적용’으로 설치합니다. 이 컴퓨터의 이후 CLI 실행에 쓰는 공통 지침을 바꾸므로 다른 프로젝트에도 영향을 줍니다."
50
- "corpus.title" = "코퍼스 패키지"
51
- "corpus.core.line" = "목표 설정·의사결정·교훈 기록의 기본 규칙(core + infra)은 항상 포함됩니다. 아래에서 작업별 패키지를 고르세요."
52
- "corpus.toggle.description" = "이 패키지를 선택하거나 해제합니다. ‘선택 적용’은 체크된 패키지 전체를 함께 설치하고 해제한 패키지는 설치 목록에서 뺍니다. 적용 전에 뒤로 돌아가거나 취소하면 설치 상태는 그대로입니다."
53
- "corpus.size.legend" = "각 패키지 옆의 크기는 모든 세션이 읽는 전역에 더해지는 양입니다. 가이드도 함께 배포되지만 규칙이 가리킬 때만 읽힙니다."
54
- "corpus.size.detail" = "모든 세션에 규칙 {rules}개({size})를 더하고, 규칙이 가리킬 때만 읽히는 가이드 {guides}개({guide_size})를 배포합니다."
55
- "corpus.size.detail.noguides" = "모든 세션에 규칙 {rules}개({size})를 더하고, 배포하는 가이드는 없습니다."
56
- "corpus.apply.label" = "선택 적용{pending}"
57
- "corpus.apply.description" = "체크한 패키지를 설치하고 해제한 패키지를 이 컴퓨터의 공통 지침에서 뺍니다. 설치 후 AI가 지침을 읽을 수 있는지 확인하고 결과를 보여 줍니다. 다른 프로젝트에서도 사용하는 지침이며, 프로젝트 코드를 바꾸는 작업은 아닙니다."
58
- "corpus.apply.unchanged" = "체크된 집합이 적용된 집합과 같습니다 — 적용할 것이 없습니다"
59
- "corpus.unavailable.line1" = "corpus status projection이 없거나 도메인 보고 이전 버전입니다."
60
- "corpus.none.line" = "이 투영에는 선택 가능한 도메인 패키지가 없습니다 — core와 infra는 항상 설치되므로 여기서 고를 것이 없습니다."
61
- "corpus.unavailable.line2" = "실행: agent-bios install (이 화면이 읽는 projection을 다시 씁니다)"
62
- "corpus.back.hint" = "모드 메뉴로 돌아갑니다."
44
+ "instructions.label" = "지침 패키지"
45
+ "instructions.private.title" = "Instructions Studio"
46
+ "instructions.private.description" = "개인 지침 항목을 조회·생성·편집·삭제·복원합니다. 변경은 다음 활성 세션에 반영되고, 실행 중인 세션은 고정한 내용을 유지합니다."
47
+ "instructions.private.relationship" = "지침은 별도 저장소에 보관됩니다. Builder는 선택한 사본을 활성화하고, 기본 CLI와 Vanilla에는 자동 추가하지 않습니다. 기존 전역 설치는 별도 이전이 필요합니다."
48
+ "instructions.private.vanilla" = "기본 CLI와 사용자가 설정한 개인·프로젝트 지시문을 사용합니다. agent-bios의 개인 지침, 스킬 설명, 실행 설정은 추가하지 않습니다."
49
+ "instructions.description" = "AI가 참고할 작업 지침을 고릅니다. 개발·여러 에이전트의 협업·스프레드시트 같은 작업별 묶음입니다. 패키지를 고른 뒤 ‘선택 적용’으로 설치합니다. 이 컴퓨터의 이후 CLI 실행에 쓰는 공통 지침을 바꾸므로 다른 프로젝트에도 영향을 줍니다."
50
+ "instructions.title" = "지침 패키지"
51
+ "instructions.core.line" = "목표 설정·의사결정·교훈 기록의 기본 규칙(core + infra)은 항상 포함됩니다. 아래에서 작업별 패키지를 고르세요."
52
+ "instructions.toggle.description" = "이 패키지를 선택하거나 해제합니다. ‘선택 적용’은 체크된 패키지 전체를 함께 설치하고 해제한 패키지는 설치 목록에서 뺍니다. 적용 전에 뒤로 돌아가거나 취소하면 설치 상태는 그대로입니다."
53
+ "instructions.size.legend" = "각 패키지 옆의 크기는 모든 세션이 읽는 전역에 더해지는 양입니다. 가이드도 함께 배포되지만 규칙이 가리킬 때만 읽힙니다."
54
+ "instructions.size.detail" = "모든 세션에 규칙 {rules}개({size})를 더하고, 규칙이 가리킬 때만 읽히는 가이드 {guides}개({guide_size})를 배포합니다."
55
+ "instructions.size.detail.noguides" = "모든 세션에 규칙 {rules}개({size})를 더하고, 배포하는 가이드는 없습니다."
56
+ "instructions.apply.label" = "선택 적용{pending}"
57
+ "instructions.apply.description" = "체크한 패키지를 설치하고 해제한 패키지를 이 컴퓨터의 공통 지침에서 뺍니다. 설치 후 AI가 지침을 읽을 수 있는지 확인하고 결과를 보여 줍니다. 다른 프로젝트에서도 사용하는 지침이며, 프로젝트 코드를 바꾸는 작업은 아닙니다."
58
+ "instructions.apply.unchanged" = "체크된 집합이 적용된 집합과 같습니다 — 적용할 것이 없습니다"
59
+ "instructions.unavailable.line1" = "지침 상태 요약이 없거나 도메인 보고 이전 버전입니다."
60
+ "instructions.none.line" = "이 투영에는 선택 가능한 도메인 패키지가 없습니다 — core와 infra는 항상 설치되므로 여기서 고를 것이 없습니다."
61
+ "instructions.unavailable.line2" = "실행: agent-bios install (이 화면이 읽는 projection을 다시 씁니다)"
62
+ "instructions.back.hint" = "모드 메뉴로 돌아갑니다."
63
63
 
64
- "corpus.launch.relationship" = "모드와 프리셋은 세션의 실행 방식을 정합니다. 설치된 코퍼스 선택은 그대로 유지되며, 변경은 ‘코퍼스 패키지’에서 합니다. Vanilla에서도 호스트의 기본 지침 로딩을 통해 설치된 전역 규칙을 읽습니다."
65
- "corpus.launch.applied" = "현재 적용된 코퍼스:"
66
- "corpus.launch.base" = "core + infra: 목표·제약 확인, 선택지 비교, 검증 결과 보고, 다음 세션에 재사용할 교훈 기록을 다룹니다."
67
- "corpus.launch.unknown" = "이 설치본에서 패키지 내용을 확인할 수 없습니다."
68
- "corpus.domain.builder-base.label" = "개발 기본 원칙"
69
- "corpus.domain.llm-pipeline-dev.label" = "LLM 파이프라인 개발"
70
- "corpus.domain.multi-agent-orchestration.label" = "여러 에이전트의 협업"
71
- "corpus.domain.visualization-docs.label" = "도표와 구현 지도"
72
- "corpus.domain.office-work.label" = "스프레드시트 작업"
73
- "corpus.domain.builder-base" = """
64
+ "instructions.launch.relationship" = "모드와 프리셋은 세션의 실행 방식을 정합니다. 설치된 지침 선택은 그대로 유지되며, 변경은 ‘지침 패키지’에서 합니다. Vanilla에서도 호스트의 기본 지침 로딩을 통해 설치된 전역 규칙을 읽습니다."
65
+ "instructions.launch.applied" = "현재 적용된 지침:"
66
+ "instructions.launch.base" = "core + infra: 목표·제약 확인, 선택지 비교, 검증 결과 보고, 다음 세션에 재사용할 교훈 기록을 다룹니다."
67
+ "instructions.launch.unknown" = "이 설치본에서 패키지 내용을 확인할 수 없습니다."
68
+ "instructions.domain.builder-base.label" = "개발 기본 원칙"
69
+ "instructions.domain.llm-pipeline-dev.label" = "LLM 파이프라인 개발"
70
+ "instructions.domain.multi-agent-orchestration.label" = "여러 에이전트의 협업"
71
+ "instructions.domain.visualization-docs.label" = "도표와 구현 지도"
72
+ "instructions.domain.office-work.label" = "스프레드시트 작업"
73
+ "instructions.domain.builder-base" = """
74
74
  소프트웨어 구현·검증·유지보수에 공통으로 쓰는 개발 원칙입니다.
75
75
  • Coding(개발 절차): 완료 기준을 정하고 작업을 계획한 뒤, 필요한 부분을 수정하고 결과를 리뷰합니다.
76
76
  • Verification menus(검증 선택): 코드·설정·문서 등 작업 대상에 맞는 검사를 고르고 실제 변경 경로를 검증합니다.
@@ -81,14 +81,14 @@
81
81
  • Review requests & defect criteria(리뷰 기준): 근거와 구체적인 실패 기준을 리뷰어에게 주고 중요한 지적을 해결합니다.
82
82
  • Repository instructions(저장소 지침): repo-charter 스킬로 저장소 코드에 근거한 AGENTS.md 작업 규칙을 만듭니다.
83
83
  """
84
- "corpus.domain.llm-pipeline-dev" = """
84
+ "instructions.domain.llm-pipeline-dev" = """
85
85
  모델의 판단과 코드로 보장할 계약을 구분해 LLM 파이프라인을 만듭니다.
86
86
  • Capability boundary(역할 경계): 의미 해석과 선택은 모델이 맡고, 정확한 계산과 변환은 도구가 수행합니다.
87
87
  • Structured output(구조화 출력): 제출 형식을 제한하고 코드가 검증·직렬화·최종 산출물 생성을 맡습니다.
88
88
  • Runtime authority(실행 권한): 실제 도구와 소비 경로에서 권한·실행 경로를 보장합니다. 프롬프트나 읽히지 않는 플래그만으로는 동작이 바뀌지 않습니다.
89
89
  • Failure handling(실패 처리): 계약을 어긴 출력은 거부하고 불확실한 품질 판단은 사용자에게 알립니다. 모델 출력을 몰래 보정하지 않습니다.
90
90
  """
91
- "corpus.domain.multi-agent-orchestration" = """
91
+ "instructions.domain.multi-agent-orchestration" = """
92
92
  여러 모델과 CLI 에이전트의 역할·인수인계·독립 리뷰를 조율합니다.
93
93
  • Delegation(위임): 독립 작업이나 반복 작업에 에이전트가 유용한지 판단하고 범위와 완료 기준을 정해 맡깁니다.
94
94
  • Model allocation(모델 배분): 난도와 영향에 따라 티어를 배정하고 저렴한 모델의 구현에는 검증을 보강합니다.
@@ -96,13 +96,13 @@
96
96
  • Independent review(독립 리뷰): 제공자와 관점을 비교하고 요청한 모델·설정에서 리뷰가 실제로 실행됐는지 확인합니다.
97
97
  • Continuation & batches(재개·일괄 작업): 재개 가능한 산출물을 보존하고 세션 상태를 재확인하며 사용량 제한의 반복 재시도를 멈춥니다.
98
98
  """
99
- "corpus.domain.visualization-docs" = """
99
+ "instructions.domain.visualization-docs" = """
100
100
  시스템과 의사결정을 도표로 설명하고 현재 구현 상태를 지도로 관리합니다.
101
101
  • Visual explanations(시각 설명): 비교·흐름·상태 변화를 가장 잘 전달하는 텍스트·표·HTML 표현을 고릅니다.
102
102
  • SVG diagrams(SVG 도표): 역할·경계·의존성·방향을 읽기 쉬운 배치와 일관된 표기로 나타냅니다.
103
103
  • Implementation map(구현 지도): 구조·목표·위험·결정·검증 상태를 현재 시점의 대시보드로 유지합니다.
104
104
  """
105
- "corpus.domain.office-work" = """
105
+ "instructions.domain.office-work" = """
106
106
  스프레드시트 작업을 설치된 spreadsheet-processing 스킬로 안내합니다.
107
107
  • Spreadsheet processing(시트 작업): 스킬이 있으면 통합문서 편집·생성·대사·검증에 사용합니다.
108
108
  • Formula verification(수식 검증): 수식에 의존하는 Excel 결과를 실제 Microsoft Excel 엔진으로 확인합니다.
@@ -129,7 +129,7 @@
129
129
  "wizard.perspectives.refused" = "관점을 최소 1개 적어 주세요 — 리뷰어에게 무엇을 보라고 지시할지입니다."
130
130
  "wizard.trials.label" = "Trials (격리 패스 횟수; 1 이상)"
131
131
  "wizard.trials.refused" = "1 이상의 정수가 필요합니다."
132
- "wizard.instructions.label" = "Instructions (slot: {command} {model} {effort} {provider} {host} {service_tier} {perspectives} {trials} {severities})"
132
+ "wizard.instructions.label" = "지침 (slot: {command} {model} {effort} {provider} {host} {service_tier} {perspectives} {trials} {severities})"
133
133
  "wizard.emits.label" = "리뷰어가 실제로 보고하는 severity 값들, 그대로 (쉼표 구분)"
134
134
  "wizard.map.title" = "canonical ladder로 매핑 — {value}"
135
135
  "wizard.confirm.title" = "reader가 이 블록을 수락했습니다 — 기록할까요?"
@@ -213,15 +213,15 @@
213
213
  "policy.claude.standard.label" = "표준"
214
214
  "policy.claude.standard.description" = "정책 플래그를 전달하지 않고 Claude의 기본 권한 확인을 사용합니다."
215
215
 
216
- # 세션 디스틸 영역 — 코퍼스 내용의 버전, 패키지, 롤백.
216
+ # 세션 디스틸 영역 — 지침 내용의 버전, 패키지, 롤백.
217
217
  "distill.title" = "Session Distill"
218
218
  "distill.start.label" = "Session distill 실행 시작"
219
219
  "distill.start.description" = "Session distill 프리셋으로 실행합니다. 미션 라인이 세션을 워크플로 가이드와 SSOT로 안내합니다."
220
220
  "distill.start.unavailable" = "프리셋 {preset}이(가) 설정되지 않았습니다"
221
- "distill.packages.label" = "코퍼스 패키지"
222
- "distill.packages.description" = "어떤 코퍼스 내용이 적용돼 있는지 설치 가능한 패키지 단위로 봅니다 (v1: 단일 core 코퍼스)."
221
+ "distill.packages.label" = "지침 패키지"
222
+ "distill.packages.description" = "어떤 지침 내용이 적용돼 있는지 설치 가능한 패키지 단위로 봅니다 (v1: 단일 core 지침)."
223
223
  "distill.versions.label" = "버전 및 롤백"
224
- "distill.versions.description" = "코퍼스 내용의 버전입니다(시스템 배포와는 별개). 코퍼스를 이전 또는 이후 버전으로 되돌립니다."
224
+ "distill.versions.description" = "지침 내용의 버전입니다(시스템 배포와는 별개). 지침을 이전 또는 이후 버전으로 되돌립니다."
225
225
  "distill.back.label" = "뒤로"
226
226
  "distill.back.hint" = "Session distill로 돌아갑니다."
227
227
  "distill.back.launch" = "실행 메뉴로 돌아갑니다."
@@ -229,19 +229,19 @@
229
229
  "distill.version.description" = "closed {closed} · commit {commit} · {summary}"
230
230
  "distill.version.applied.title" = "{version}이(가) 현재 적용된 버전입니다"
231
231
  "distill.version.applied.line" = "롤백하거나 롤포워드하려면 다른 버전을 선택하세요."
232
- "distill.package.core.label" = "core 코퍼스 @ {version}"
233
- "distill.package.core.description" = "도메인 패키징이 도입되기 전까지 모든 코퍼스 도메인이 하나의 패키지입니다(백로그). 레이어: {layers}. 도메인별 선택·버전·롤백은 이후 여기에 표시됩니다."
234
- "distill.rollback.title" = "코퍼스를 {version}(으)로 롤백할까요?"
232
+ "distill.package.core.label" = "core 지침 @ {version}"
233
+ "distill.package.core.description" = "도메인 패키징이 도입되기 전까지 모든 지침 도메인이 하나의 패키지입니다(백로그). 레이어: {layers}. 도메인별 선택·버전·롤백은 이후 여기에 표시됩니다."
234
+ "distill.rollback.title" = "지침을 {version}(으)로 롤백할까요?"
235
235
  "distill.rollback.cancel.label" = "취소"
236
- "distill.rollback.cancel.description" = "현재 배포된 코퍼스 내용을 그대로 유지합니다."
236
+ "distill.rollback.cancel.description" = "현재 배포된 지침 내용을 그대로 유지합니다."
237
237
  "distill.rollback.confirm.label" = "{version}(으)로 롤백"
238
- "distill.rollback.confirm.description" = "해당 코퍼스 버전 시점의 globals/guides/hooks를 다시 배포합니다. 시스템 배포(런처, 래퍼)는 현재 상태를 유지합니다. 최신 버전을 선택하면 다시 롤포워드됩니다."
238
+ "distill.rollback.confirm.description" = "해당 지침 버전 시점의 globals/guides/hooks를 다시 배포합니다. 시스템 배포(런처, 래퍼)는 현재 상태를 유지합니다. 최신 버전을 선택하면 다시 롤포워드됩니다."
239
239
  "distill.rollback.done" = "롤백 완료."
240
240
  "distill.rollback.failed" = "롤백 실패."
241
241
 
242
- # 코퍼스 상태 패널 — Session Distill 영역과 체크리스트가 함께 씁니다.
242
+ # 지침 상태 패널 — Session Distill 영역과 체크리스트가 함께 씁니다.
243
243
  # 라벨은 표시 셀 기준으로 정렬되므로 번역 길이가 달라도 어긋나지 않습니다.
244
- "panel.unprojected" = "코퍼스 상태가 아직 생성되지 않았습니다 — 실행: agent-bios install"
244
+ "panel.unprojected" = "지침 상태가 아직 생성되지 않았습니다 — 실행: agent-bios install"
245
245
  "panel.version.label" = "적용 버전"
246
246
  "panel.mechanisms.label" = "메커니즘"
247
247
  "panel.ledger.label" = "원장"
@@ -258,7 +258,7 @@
258
258
  "panel.ledger.value" = "배치 {placed} · 인큐베이팅 {incubating} · 버전 {versions}"
259
259
  "panel.domains.unset" = "(아직 선택 안 함)"
260
260
  "panel.last-apply" = "⚠ 마지막 적용 {outcome} @ {at} — 요청: {requested}"
261
- "corpus.core-only" = "core+infra만"
261
+ "instructions.core-only" = "core+infra만"
262
262
 
263
263
  # Numbered-prompt chrome. These were printed as English literals from the renderer
264
264
  # while every line of content around them was translated, so the Korean and Japanese
@@ -281,7 +281,7 @@
281
281
  "global-instructions.exclude.private-unavailable" = "agent-bios 활성 세션이 필요합니다. Vanilla와 일반 CLI 실행은 네이티브 지침 로딩을 유지합니다."
282
282
  "setup.inactive.label" = "비활성"
283
283
  "setup.inactive.value" = "{tiers} — 비활성, 투영되지 않음 ({reason})"
284
- "tui.corpus.title" = "코퍼스 상태"
284
+ "tui.instructions.title" = "지침 상태"
285
285
  "tui.detail.title" = "선택 중인 항목 설명"
286
286
  "tui.detail.scroll" = "j/k: 설명 아래/위 · Shift+PgUp/PgDn"
287
287
  "tui.options.header" = "항목 (1-{count} / {count})"
@@ -302,10 +302,10 @@
302
302
  "prompt.unavailable" = "사용 불가"
303
303
  "prompt.unavailable.retry" = "사용 불가: {reason}. 사용 가능한 항목을 선택하세요."
304
304
  "prompt.no.previous" = "이전 메뉴가 없습니다. q로 취소하세요."
305
- "prompt.corpus.header" = "-- 코퍼스 상태 --"
305
+ "prompt.instructions.header" = "-- 지침 상태 --"
306
306
 
307
- "understand.title" = "Understand! · Corpus 원리 이해"
308
- "understand.description" = "Corpus 묶음이 존재하는 이유, 규칙의 배경과 맥락, 작동 원리와 한계를 문답으로 이해합니다."
309
- "understand.empty" = "이 corpus에는 학습할 수 있는 묶음이 없습니다."
307
+ "understand.title" = "Understand! · 지침 원리 이해"
308
+ "understand.description" = "지침 묶음이 존재하는 이유, 규칙의 배경과 맥락, 작동 원리와 한계를 문답으로 이해합니다."
309
+ "understand.empty" = "이 instructions에는 학습할 수 있는 묶음이 없습니다."
310
310
  "understand.bundle.detail" = "관련 자료 {count}개 · 개별 파일이 아니라 하나의 묶음으로 학습합니다."
311
- "understand.session.scope" = "선택한 내용을 고정한 새 대화 세션에서 학습합니다. Corpus 훅을 활성화하거나 전역 지침 파일을 수정하지 않습니다."
311
+ "understand.session.scope" = "선택한 내용을 고정한 새 대화 세션에서 학습합니다. 지침 훅을 활성화하거나 전역 지침 파일을 수정하지 않습니다."
@@ -1,4 +1,4 @@
1
- """Opt-in zsh entrypoints, independent of native instruction files and corpus content."""
1
+ """Opt-in zsh entrypoints, independent of native instruction files and instructions content."""
2
2
  from __future__ import annotations
3
3
 
4
4
  import argparse
@@ -39,7 +39,7 @@ class ShellIntegration:
39
39
  compose = str(Path(__file__).resolve().parent.parent / "compose")
40
40
  if compose not in sys.path:
41
41
  sys.path.insert(0, compose)
42
- from corpus_transaction import reject_symlink_ancestors, TransactionError
42
+ from instructions_transaction import reject_symlink_ancestors, TransactionError
43
43
  try:
44
44
  reject_symlink_ancestors(path)
45
45
  except TransactionError as exc:
@@ -195,12 +195,12 @@ class ShellIntegration:
195
195
 
196
196
  def apply(self, action, dry_run=False):
197
197
  # One writer lock is shared with install/reset/migrate. Imports stay lazy so
198
- # status and help do not create state or require an installed corpus.
198
+ # status and help do not create state or require an installed instructions.
199
199
  import sys
200
200
  compose = str(Path(__file__).resolve().parent.parent / "compose")
201
201
  if compose not in sys.path:
202
202
  sys.path.insert(0, compose)
203
- from corpus_transaction import transaction_lock, guard_pending
203
+ from instructions_transaction import transaction_lock, guard_pending
204
204
  lock = contextlib.nullcontext() if dry_run else transaction_lock(self.state)
205
205
  with lock:
206
206
  guard_pending(self.state)
@@ -9,8 +9,8 @@ optional criteria / classification / proposed_domain / context) plus its session
9
9
  * mints learning_id (a lowercase UUID) + created (ISO-8601) + schema_version;
10
10
  * validates the full record against learn/learning.schema.json — the single
11
11
  validation source, reused from learn/check-learning.py (no second schema);
12
- * appends the exact record to the private corpus's host-qualified events.jsonl;
13
- * supplies it to future activated snapshots through CorpusStore, without changing
12
+ * appends the exact record to the private instructions's host-qualified events.jsonl;
13
+ * supplies it to future activated snapshots through InstructionsStore, without changing
14
14
  native global instructions or the running session;
15
15
  * drains explicitly configured ingestion from that immutable private event source.
16
16
 
@@ -23,7 +23,7 @@ never patches the payload to make it pass (runtime enforces, does not reason).
23
23
 
24
24
  Input: the semantic payload as one JSON object on stdin.
25
25
  Host: --host claude|codex (default: the tool prefix of supporting_sessions[0]).
26
- Private storage: $AGENT_BIOS_CORPUS_DIR, else ~/.config/agent-bios/corpus.
26
+ Private storage: $AGENT_BIOS_INSTRUCTIONS_DIR, else ~/.config/agent-bios/corpus.
27
27
  Legacy storage: --config-dir, else $CLAUDE_CONFIG_DIR / $CODEX_HOME by host.
28
28
  --config-dir requires AGENT_BIOS_LEGACY_INSTALL=1; it cannot relocate private capture.
29
29
  After the local writes it best-effort uploads not-yet-delivered records to
@@ -52,7 +52,7 @@ REPO = pathlib.Path(__file__).resolve().parent.parent
52
52
  OWNED_FIELDS = ("schema_version", "learning_id", "created")
53
53
  # Free-text the LLM authored — scrubbed through the shared secret-redaction floor
54
54
  # at capture, so secrets never reach the durable log, the upload, or the curator
55
- # export (design/collection-loop/PHASE3-CURATION-DESIGN.md; the corpus floor in
55
+ # export (design/collection-loop/PHASE3-CURATION-DESIGN.md; the instructions floor in
56
56
  # design/corpus-domain-packaging.md). Pattern-locked fields (domain,
57
57
  # supporting_sessions, criteria) carry no free text and are left untouched.
58
58
  FREE_TEXT_FIELDS = ("lesson", "context")
@@ -74,7 +74,7 @@ def import_line_index(body, directive):
74
74
  example, or named in a sentence, loads nothing — and reading it as an import made
75
75
  two different files claim a file was wired when it was not: capture reported the
76
76
  entry `present` and wrote nothing, and migrate-learnings read a fenced central
77
- import as evidence the corpus was loaded, which is half of what authorizes deleting
77
+ import as evidence the instructions was loaded, which is half of what authorizes deleting
78
78
  a user's personal copy. An import is a line whose whole content is the directive.
79
79
 
80
80
  Fences are tracked rather than stripped so the index is an index into `body`'s own
@@ -276,7 +276,7 @@ def apply_codex(home, bullet, dry):
276
276
  if agents.exists():
277
277
  body = agents.read_text(encoding="utf-8")
278
278
  else:
279
- # Degenerate (corpus not installed): seed EMPTY central markers so a
279
+ # Degenerate (instructions not installed): seed EMPTY central markers so a
280
280
  # later assemble fills them and keeps our region in the preserved tail.
281
281
  body = f"{CENTRAL_START}\n{CENTRAL_END}\n"
282
282
  if PERSONAL_START in body and PERSONAL_END in body:
@@ -1151,7 +1151,7 @@ def main():
1151
1151
  help="session host (default: tool prefix of supporting_sessions[0])")
1152
1152
  ap.add_argument("--config-dir", default=None,
1153
1153
  help="legacy host home only (requires AGENT_BIOS_LEGACY_INSTALL=1); "
1154
- "private capture uses AGENT_BIOS_CORPUS_DIR")
1154
+ "private capture uses AGENT_BIOS_INSTRUCTIONS_DIR")
1155
1155
  ap.add_argument("--dry-run", action="store_true",
1156
1156
  help="validate and print actions; write nothing")
1157
1157
  ap.add_argument("--no-upload", action="store_true",
@@ -1167,7 +1167,7 @@ def main():
1167
1167
  legacy = os.environ.get("AGENT_BIOS_LEGACY_INSTALL") == "1"
1168
1168
  if args.config_dir is not None and not legacy:
1169
1169
  ap.error("--config-dir applies only to AGENT_BIOS_LEGACY_INSTALL=1; "
1170
- "set AGENT_BIOS_CORPUS_DIR to relocate private learning storage")
1170
+ "set AGENT_BIOS_INSTRUCTIONS_DIR to relocate private learning storage")
1171
1171
 
1172
1172
  payload = read_payload()
1173
1173
  host = resolve_host(args.host, payload)
@@ -1186,8 +1186,8 @@ def main():
1186
1186
  # Capture is an immutable private source. Model-visible projections are
1187
1187
  # composed when an activated session is started, never written globally.
1188
1188
  sys.path.insert(0, str(REPO / "compose"))
1189
- from corpus_store import CorpusStore
1190
- store = CorpusStore(REPO)
1189
+ from instructions_store import InstructionsStore
1190
+ store = InstructionsStore(REPO)
1191
1191
  destination = store.user_root / "learnings" / host
1192
1192
  if dry:
1193
1193
  print(f"collect-learning: [dry] private capture host={host} -> {destination / 'events.jsonl'}")
@@ -28,7 +28,7 @@
28
28
  "type": "string",
29
29
  "minLength": 8,
30
30
  "maxLength": 2000,
31
- "description": "The captured lesson prose stored in the private corpus's host-qualified events.jsonl and supplied to future selected, activated-session snapshots. Ledger-compatible with entries[].lesson."
31
+ "description": "The captured lesson prose stored in the private instructions's host-qualified events.jsonl and supplied to future selected, activated-session snapshots. Ledger-compatible with entries[].lesson."
32
32
  },
33
33
  "domain": {
34
34
  "type": "string",