omniconductor 0.3.0

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 (118) hide show
  1. package/CHANGELOG.md +64 -0
  2. package/LICENSE +219 -0
  3. package/NOTICE +11 -0
  4. package/README.md +526 -0
  5. package/THIRD_PARTY_NOTICES.md +31 -0
  6. package/TRADEMARKS.md +26 -0
  7. package/VISION.md +106 -0
  8. package/adapters/README.md +121 -0
  9. package/adapters/claude/README.md +102 -0
  10. package/adapters/claude/SUPPORTED-FEATURES.md +66 -0
  11. package/adapters/claude/hookify-templates/.recipe-scoped +9 -0
  12. package/adapters/claude/hookify-templates/README.md +93 -0
  13. package/adapters/claude/hookify-templates/block-completion-claim-without-push.local.md.template +56 -0
  14. package/adapters/claude/hookify-templates/block-direct-push-protected-branch.local.md.template +18 -0
  15. package/adapters/claude/hookify-templates/block-force-push-protected-branch.local.md.template +42 -0
  16. package/adapters/claude/hookify-templates/block-server-secret-in-client.local.md.template +36 -0
  17. package/adapters/claude/hookify-templates/warn-any-type-added.local.md.template +44 -0
  18. package/adapters/claude/hookify-templates/warn-commit-without-pre-commit-review.local.md.template +52 -0
  19. package/adapters/claude/hookify-templates/warn-console-direct.local.md.template +55 -0
  20. package/adapters/claude/hookify-templates/warn-create-table-without-access-control.local.md.template +35 -0
  21. package/adapters/claude/hookify-templates/warn-current-work-without-remaining-tasks.local.md.template +36 -0
  22. package/adapters/claude/hookify-templates/warn-gh-pr-create-without-pre-merge-review.local.md.template +38 -0
  23. package/adapters/claude/hookify-templates/warn-hardcoded-text-without-i18n-key.local.md.template +21 -0
  24. package/adapters/claude/hookify-templates/warn-on-gh-pr-merge.local.md.template +33 -0
  25. package/adapters/claude/hookify-templates/warn-plan-spec-without-remaining-tasks.local.md.template +44 -0
  26. package/adapters/claude/hookify-templates/warn-raw-hex-instead-of-token.local.md.template +21 -0
  27. package/adapters/claude/hookify-templates/warn-security-definer-without-search-path.local.md.template +30 -0
  28. package/adapters/claude/hookify-templates/warn-stop-commit-without-current-work.local.md.template +47 -0
  29. package/adapters/claude/hookify-templates/warn-user-manual-completion.local.md.template +40 -0
  30. package/adapters/claude/transform-spec.md +140 -0
  31. package/adapters/claude/transform.sh +1169 -0
  32. package/adapters/codex/README.md +87 -0
  33. package/adapters/codex/SUPPORTED-FEATURES.md +66 -0
  34. package/adapters/codex/transform-spec.md +90 -0
  35. package/adapters/codex/transform.sh +748 -0
  36. package/adapters/copilot/README.md +88 -0
  37. package/adapters/copilot/SUPPORTED-FEATURES.md +73 -0
  38. package/adapters/copilot/transform-spec.md +111 -0
  39. package/adapters/copilot/transform.sh +757 -0
  40. package/adapters/cursor/README.md +87 -0
  41. package/adapters/cursor/SUPPORTED-FEATURES.md +90 -0
  42. package/adapters/cursor/transform-spec.md +124 -0
  43. package/adapters/cursor/transform.sh +731 -0
  44. package/adapters/gemini/README.md +93 -0
  45. package/adapters/gemini/SUPPORTED-FEATURES.md +80 -0
  46. package/adapters/gemini/transform-spec.md +102 -0
  47. package/adapters/gemini/transform.sh +844 -0
  48. package/adapters/windsurf/README.md +93 -0
  49. package/adapters/windsurf/SUPPORTED-FEATURES.md +67 -0
  50. package/adapters/windsurf/transform-spec.md +99 -0
  51. package/adapters/windsurf/transform.sh +727 -0
  52. package/bin/omniconductor.js +130 -0
  53. package/core/README.md +64 -0
  54. package/core/anti-patterns/README.md +142 -0
  55. package/core/anti-patterns/dynamic-system-prompt.md +113 -0
  56. package/core/anti-patterns/frequent-rule-file-edit.md +83 -0
  57. package/core/anti-patterns/large-file-read-no-range.md +90 -0
  58. package/core/anti-patterns/no-sub-agent-dispatch.md +89 -0
  59. package/core/anti-patterns/single-monolithic-rule-file.md +99 -0
  60. package/core/anti-patterns/skill-eager-load.md +83 -0
  61. package/core/anti-patterns/tool-call-spam.md +93 -0
  62. package/core/docs-templates/CURRENT_WORK.md +64 -0
  63. package/core/docs-templates/INDEX.md +57 -0
  64. package/core/docs-templates/PLANS.md +44 -0
  65. package/core/docs-templates/README.md +40 -0
  66. package/core/docs-templates/REMAINING_TASKS.md +43 -0
  67. package/core/docs-templates/TASKS.md +51 -0
  68. package/core/docs-templates/specs/_example.md +121 -0
  69. package/core/hooks/README.md +62 -0
  70. package/core/hooks/pretool-agent-routing.sh.template +97 -0
  71. package/core/hooks/pretool-commit-current-work-check.sh.template +103 -0
  72. package/core/hooks/pretool-commit-test-coverage-check.sh.template +116 -0
  73. package/core/hooks/pretool-large-file-read-guard.sh.template +117 -0
  74. package/core/hooks/stop-cache-hit-baseline-check.sh.template +133 -0
  75. package/core/hooks/stop-r6-review-check.sh.template +80 -0
  76. package/core/hooks/stop-session-log-check.sh.template +101 -0
  77. package/core/hooks/stop-trajectory-log.sh.template +96 -0
  78. package/core/memory-pattern/EXAMPLES.md +114 -0
  79. package/core/memory-pattern/README.md +133 -0
  80. package/core/recipes/README.md +46 -0
  81. package/core/recipes/auto-mock-data.md +82 -0
  82. package/core/recipes/branch-strategy.md +100 -0
  83. package/core/recipes/coding-conventions.md +123 -0
  84. package/core/recipes/database-discipline.md +65 -0
  85. package/core/recipes/debugging.md +143 -0
  86. package/core/recipes/design-system.md +30 -0
  87. package/core/recipes/i18n.md +118 -0
  88. package/core/recipes/monorepo.md +101 -0
  89. package/core/recipes/self-improvement.md +61 -0
  90. package/core/recipes/tdd.md +128 -0
  91. package/core/recipes/web-mobile-parity.md +87 -0
  92. package/core/reflector/SCHEDULING.md +83 -0
  93. package/core/reflector/prune-lessons.sh +105 -0
  94. package/core/reflector/reflect-brief.md +11 -0
  95. package/core/reflector/reflect.command.md +13 -0
  96. package/core/reflector/run-weekly.sh +54 -0
  97. package/core/reflector/trajectory-log.sh +55 -0
  98. package/core/roles/README.md +61 -0
  99. package/core/roles/builder.md +75 -0
  100. package/core/roles/designer.md +93 -0
  101. package/core/roles/helper.md +70 -0
  102. package/core/roles/planner.md +123 -0
  103. package/core/roles/reflector.md +72 -0
  104. package/core/roles/reviewer.md +104 -0
  105. package/core/roles/scribe.md +89 -0
  106. package/core/universal-rules/README.md +71 -0
  107. package/core/universal-rules/meta-discipline.md +292 -0
  108. package/core/universal-rules/operations.md +162 -0
  109. package/core/universal-rules/quality-gates.md +191 -0
  110. package/core/universal-rules/spec-as-you-go.md +123 -0
  111. package/core/universal-rules/workflow.md +153 -0
  112. package/core/workflow/PHASES.md +134 -0
  113. package/core/workflow/README.md +56 -0
  114. package/docs/MANUAL-INSTALL.md +456 -0
  115. package/package.json +52 -0
  116. package/tools/check-framework-purity.sh +91 -0
  117. package/tools/measure-tokens.sh +169 -0
  118. package/tools/validate-adapter-output.sh +611 -0
package/README.md ADDED
@@ -0,0 +1,526 @@
1
+ # CONDUCTOR
2
+
3
+ **One workflow framework, every coding agent.**
4
+
5
+ Write your project's rules, workflow, and discipline ONCE. Install into any AI coding tool you use — Claude Code, Cursor, GitHub Copilot, Gemini CLI, Codex, Windsurf — and get the same Plan → Architecture → Tasks → Implementation → Review → Spec discipline everywhere.
6
+
7
+ > Born from one year of production iteration at LFamily Labs — the rules, agents, hooks, and memory patterns that survived real shipping pressure.
8
+
9
+ > **Status (v0.2.x — 2026-06-28)**: All 6 adapters now ship a working `transform.sh` — **Claude Code (full: rules + hooks + sub-agents)**, **Cursor (rules + lazy load)**, **GitHub Copilot (rules across 5 IDEs via single install)**, **Gemini CLI (`GEMINI.md` + `.gemini/styleguide.md`)**, **Codex (`AGENTS.md`)**, **Windsurf (`.windsurfrules` + `.devin/rules/*.md`)**. Output is emit-verified (format-validator + CI on all 6); live runtime consumption by Gemini / Codex / Windsurf is still adopter-pending — see [`docs/ADAPTER-LIVE-VERIFICATION.md`](./docs/ADAPTER-LIVE-VERIFICATION.md). Manual install in [`docs/MANUAL-INSTALL.md`](./docs/MANUAL-INSTALL.md) remains as a fallback. Marketplace listing (VSCode Marketplace + Open VSX) is **Phase 2 / v0.3+** — see ADR-023.
10
+
11
+ ---
12
+
13
+ ## Table of contents
14
+
15
+ - [한국어 / Korean](#한국어)
16
+ - [English](#english)
17
+ - [Tool coverage matrix](#tool-coverage-matrix)
18
+ - [Install paths (3 options)](#install-paths)
19
+ - [Cross-platform: Mac and Windows](#cross-platform-mac-and-windows)
20
+ - [Recipes catalog (11)](#recipes-catalog)
21
+ - [`transform.sh` options reference](#transformsh-options-reference)
22
+ - [Update / Maintenance / Uninstall](#update--maintenance--uninstall)
23
+ - [Token measurement & KPI baseline](#token-measurement--kpi-baseline)
24
+ - [Troubleshooting](#troubleshooting)
25
+ - [Memory pattern + ADR index](#memory-pattern--adr-index)
26
+ - [FAQ](#faq)
27
+
28
+ ---
29
+
30
+ ## 한국어
31
+
32
+ ### 무엇
33
+
34
+ `CONDUCTOR` 는 6개의 AI 코딩 도구 (Claude Code / Cursor / GitHub Copilot / Gemini CLI / Codex / Windsurf) 모두에서 동일한 워크플로 + 룰 + 문서 템플릿을 강제하는 프레임워크입니다.
35
+
36
+ 핵심 아이디어:
37
+
38
+ - **Layer 1 (`core/`) — Universal**: 도구 독립적인 워크플로 정의, 룰 텍스트, 문서 템플릿, 4-type 메모리 패턴
39
+ - **Layer 2 (`adapters/<tool>/`) — Adapter**: `core/` 의 universal 자료를 각 도구의 네이티브 포맷으로 변환 (`.claude/` / `.cursor/rules/*.mdc` / `.github/instructions/*.instructions.md` / `GEMINI.md` / `AGENTS.md` / `.windsurfrules`)
40
+ - **Layer 3 — Tool-native (정직한 한계)**: Sub-agent dispatch, hooks API, lazy-load 룰 같은 Claude 전용 기능은 다른 도구에서 재현하지 않고 정직하게 문서화
41
+
42
+ ### 강제하는 워크플로
43
+
44
+ 1. **Plan → Architecture → Tasks → Implementation → Review → Spec** (skip 금지)
45
+ 2. **Spec-as-you-go** — 코드 변경 시 `docs/specs/*.md` 동시 업데이트 (Claude 는 Stop hook 으로 강제, 다른 도구는 룰 reminder)
46
+ 3. **2-stage 코드 리뷰** — pre-commit + pre-merge
47
+ 4. **Token economy** — large-file Read 금지 / Grep first / range read
48
+ 5. **Model routing** — Opus / Sonnet / Haiku 자동 분류 (Claude 전용 자동 enforcement, 다른 도구는 룰 텍스트 reminder)
49
+
50
+ ### 빠른 시작 — 5분
51
+
52
+ > 가장 간단(클론 불필요): `npx omniconductor init --target=claude .` — 아래는 클론+bash 방식입니다.
53
+
54
+ ```bash
55
+ # 1. CONDUCTOR 클론
56
+ git clone https://github.com/lee77840/conductor_lfamily ~/conductor
57
+
58
+ # 2. 적용할 프로젝트로 이동
59
+ cd ~/your-project
60
+
61
+ # 3. dry-run 으로 미리보기
62
+ bash ~/conductor/adapters/claude/transform.sh . \
63
+ --recipes=monorepo,coding-conventions \
64
+ --dry-run
65
+
66
+ # 4. 실제 적용
67
+ bash ~/conductor/adapters/claude/transform.sh . \
68
+ --recipes=monorepo,coding-conventions
69
+
70
+ # 5. Claude Code 재시작 → /agents 로 6 에이전트 확인
71
+ ```
72
+
73
+ 다른 도구는 [Install paths](#install-paths) 참조. Windows 는 [Cross-platform](#cross-platform-mac-and-windows) 참조.
74
+
75
+ ---
76
+
77
+ ## English
78
+
79
+ ### What
80
+
81
+ CONDUCTOR enforces the same workflow, rules, and documentation discipline across **six AI coding tools**: Claude Code, Cursor, GitHub Copilot, Gemini CLI, Codex, Windsurf.
82
+
83
+ Three layers:
84
+
85
+ - **Layer 1 (`core/`) — Universal**: tool-agnostic workflow definitions, rule text, doc templates, 4-type memory pattern.
86
+ - **Layer 2 (`adapters/<tool>/`) — Adapter**: per-tool transform script that reads `core/` and writes tool-native files.
87
+ - **Layer 3 — Tool-native (honest limits)**: Claude-Code-only features (sub-agent dispatch, hooks API, per-call model routing) are NOT polyfilled on other tools. ADR-004 documents this honesty principle.
88
+
89
+ ### Why this exists
90
+
91
+ - Solo developers and small teams increasingly mix AI coding tools within a single project.
92
+ - Switching tools means re-writing rules from scratch — losing the same discipline you spent months building.
93
+ - CONDUCTOR lets you write the discipline once and keep it across tools.
94
+
95
+ ### Workflow enforced
96
+
97
+ 1. **Plan → Architecture → Tasks → Implementation → Review → Spec** (no skipping)
98
+ 2. **Spec-as-you-go**: code change touches matching `docs/specs/*.md` (auto-blocked by Stop hook on Claude; rule-text reminder elsewhere)
99
+ 3. **Two-stage code review**: pre-commit + pre-merge PR
100
+ 4. **Token economy**: no large-file reads, Grep first, range reads
101
+ 5. **Model routing**: Opus / Sonnet / Haiku triage (Claude auto-enforced; rule text only elsewhere)
102
+
103
+ ### Quick Start (5 minutes, Claude)
104
+
105
+ > Simplest (no clone): `npx omniconductor init --target=claude .` — the clone+bash steps below are equivalent.
106
+
107
+ ```bash
108
+ git clone https://github.com/lee77840/conductor_lfamily ~/conductor
109
+ cd ~/your-project
110
+ bash ~/conductor/adapters/claude/transform.sh . \
111
+ --recipes=monorepo,coding-conventions \
112
+ --dry-run # preview
113
+ bash ~/conductor/adapters/claude/transform.sh . \
114
+ --recipes=monorepo,coding-conventions
115
+ # Restart Claude Code → /agents → confirm 6 agents loaded
116
+ ```
117
+
118
+ Other tools: see [Install paths](#install-paths). Windows: see [Cross-platform](#cross-platform-mac-and-windows).
119
+
120
+ ---
121
+
122
+ ## Tool coverage matrix
123
+
124
+ | Tool | Adapter | Rules | Hooks | Sub-agents | Model routing | Recommended install |
125
+ |---|---|---|---|---|---|---|
126
+ | **Claude Code** | ✅ Full (`adapters/claude/`) | ✅ lazy load | ✅ Stop / PreToolUse | ✅ 6 named agents | ✅ per-call `model:` | `bash adapters/claude/transform.sh <target>` |
127
+ | **Cursor** | ✅ Full (`adapters/cursor/`) | ✅ lazy load (`.mdc` globs) | ❌ | ❌ rule reminder only | ❌ | `bash adapters/cursor/transform.sh <target>` |
128
+ | **GitHub Copilot** | ✅ Full (`adapters/copilot/`) | ✅ `applyTo:` scoping | ❌ | ❌ | ❌ | `bash adapters/copilot/transform.sh <target>` — 1 install covers VSCode + Cursor + Windsurf + JetBrains + Neovim |
129
+ | **Gemini CLI** | ✅ Full (`adapters/gemini/`) | ✅ single bundle (`GEMINI.md`) | ❌ | ❌ | ❌ | `bash adapters/gemini/transform.sh <target>` (+ `.gemini/styleguide.md` opt-in) |
130
+ | **Codex (OpenAI)** | ✅ Full (`adapters/codex/`) | ✅ single bundle (`AGENTS.md`) | ❌ | ❌ | ❌ | `bash adapters/codex/transform.sh <target>` |
131
+ | **Windsurf** | ✅ Full (`adapters/windsurf/`) | ✅ baseline (`.windsurfrules`) + `.devin/rules/*` | ❌ | ❌ | ❌ | `bash adapters/windsurf/transform.sh <target>` |
132
+
133
+ Full per-feature matrix: [`docs/COMPATIBILITY-MATRIX.md`](./docs/COMPATIBILITY-MATRIX.md).
134
+
135
+ > **CLI wrapper**: `node bin/omniconductor.js init --target=<tool> <dir>` (and, once the package is published to npm, `npx omniconductor init --target=<tool> <dir>`) dispatches to these same adapter scripts — with `list`, `--dry-run`, `--recipes=`, and `--uninstall`.
136
+
137
+ > **What you keep going from Claude → other tools**: all rule text, all doc templates, the 4-type memory pattern, the workflow phase definitions. **What you lose**: auto-blocking hooks, per-call model routing, sub-agent dispatch. The discipline is portable; the enforcement is not.
138
+
139
+ ---
140
+
141
+ ## Install paths
142
+
143
+ There are three install paths. **`npx omniconductor` (Path A) is the easiest — no clone needed.**
144
+
145
+ ### Path A — `npx omniconductor` (npm — recommended, works today)
146
+
147
+ No clone required. Published to npm as [`omniconductor`](https://www.npmjs.com/package/omniconductor):
148
+
149
+ ```bash
150
+ # Install CONDUCTOR's workflow into your project — for any of the 6 tools:
151
+ npx omniconductor init --target=claude ~/your-project --recipes=coding-conventions,tdd
152
+ # targets: claude | cursor | copilot | gemini | codex | windsurf
153
+
154
+ npx omniconductor list # list the 6 adapters
155
+ npx omniconductor init --target=claude . --dry-run --no-prompt # preview, writes nothing
156
+ npx omniconductor init --target=claude . --uninstall # revert
157
+ ```
158
+
159
+ > **VSCode Marketplace extension** — a Cmd/Ctrl+Shift+P "install" launcher — is **NOT yet published**. It is optional future work (Phase 2 / v0.3; scaffold under [`phase-2/vscode-extension/`](./phase-2/vscode-extension/), procedure in [`docs/PUBLISH-GUIDE.md`](./docs/PUBLISH-GUIDE.md)). `npx omniconductor` and the bash adapter (Path B) already cover every install — the extension would only add a GUI button, and (per ADR-025) it still needs a local clone to run, so `npx` is the better path. Searching the Marketplace today will **not** find it.
160
+
161
+ ### Path B — bash adapter (Phase 1 — recommended today)
162
+
163
+ Single command per tool. Adapter detects the target's existing state, runs an interactive wizard for adopter cases, and writes idempotent output with timestamped backups.
164
+
165
+ #### Mac / Linux
166
+
167
+ ```bash
168
+ git clone https://github.com/lee77840/conductor_lfamily ~/conductor
169
+ cd ~/your-project
170
+
171
+ # Pick your tool:
172
+ bash ~/conductor/adapters/claude/transform.sh . --recipes=monorepo,coding-conventions
173
+ bash ~/conductor/adapters/cursor/transform.sh . --recipes=monorepo,coding-conventions
174
+ bash ~/conductor/adapters/copilot/transform.sh . --recipes=monorepo,coding-conventions
175
+ ```
176
+
177
+ #### Windows / Git Bash (recommended for Windows)
178
+
179
+ ```bash
180
+ # 1. Install Git for Windows: https://git-scm.com/download/win
181
+ # 2. Open Git Bash terminal
182
+ git clone https://github.com/lee77840/conductor_lfamily /c/conductor
183
+ cd /c/Users/me/Projects/my-app
184
+
185
+ bash /c/conductor/adapters/claude/transform.sh . --recipes=monorepo,coding-conventions
186
+ ```
187
+
188
+ > Git Bash translates `C:\Users\me\foo` to `/c/Users/me/foo`. Use forward slashes in commands.
189
+
190
+ #### Windows / WSL2
191
+
192
+ ```bash
193
+ # Inside WSL2 Ubuntu — same commands as Mac/Linux
194
+ wsl
195
+ git clone https://github.com/lee77840/conductor_lfamily ~/conductor
196
+ cd ~/your-project
197
+ bash ~/conductor/adapters/claude/transform.sh . --recipes=monorepo,coding-conventions
198
+ ```
199
+
200
+ #### Windows / native PowerShell
201
+
202
+ > **Currently unsupported (Phase 3+, see ADR-023)**. PowerShell port is a near-rewrite of the bash adapters due to differing `sed` / `cat` / `mkdir` semantics. Use Git Bash or WSL2 instead.
203
+
204
+ ### Path C — Manual file copy (no script, fully manual)
205
+
206
+ For tools without an adapter (Gemini / Codex / Windsurf), or for adopters in constrained environments. Step-by-step `cp` / `cat` commands per tool, with frontmatter conversion cheat sheet, are in:
207
+
208
+ → **[`docs/MANUAL-INSTALL.md`](./docs/MANUAL-INSTALL.md)**
209
+
210
+ ---
211
+
212
+ ## Cross-platform: Mac and Windows
213
+
214
+ ### Supported platforms
215
+
216
+ | Platform | Status | Shell | Notes |
217
+ |---|---|---|---|
218
+ | **macOS** (zsh, bash) | ✅ Reference platform | zsh / bash | Native bash 3.2 works; bash 5.x via Homebrew also supported. |
219
+ | **Linux** (Ubuntu, Debian, Fedora, Arch) | ✅ Supported | bash | Primary dev + validation environment (`tools/validate-adapter-output.sh`; automated CI is a roadmap item). |
220
+ | **Windows / Git Bash** | ✅ Supported | bash from MSYS2 | Bundled with Git for Windows. |
221
+ | **Windows / WSL2 (Ubuntu)** | ✅ Supported | bash | Treat as Linux. |
222
+ | **Windows / PowerShell** | ❌ Phase 3+ (ADR-023) | — | Use Git Bash or WSL2. |
223
+
224
+ ### Common gotchas
225
+
226
+ - **GNU vs BSD `sed`**: macOS ships BSD `sed`, which requires `-i ''` for in-place edits; Linux/Git-Bash use GNU `sed -i`. Conductor adapters avoid `sed -i` entirely (use `cat > new` + `mv` instead) to side-step this.
227
+ - **CRLF vs LF on Windows**: Conductor source files are LF + UTF-8. If `git config core.autocrlf=true` rewrites `.sh` files to CRLF, bash will error with `\r: command not found`. Set:
228
+
229
+ ```bash
230
+ git config --global core.autocrlf input
231
+ ```
232
+
233
+ - **`python3` requirement**: macOS 12+ ships Python 3 by default; Linux distros generally have it; Windows / Git Bash needs explicit install (`pacman -S python` in MSYS2, or use the Windows Python installer). Used by `tools/measure-tokens.sh` only — not required for the install itself.
234
+ - **Path quoting**: spaces in target paths work, but always quote: `bash adapters/claude/transform.sh "/c/Users/My Name/Projects/app"`.
235
+
236
+ ---
237
+
238
+ ## Recipes catalog
239
+
240
+ 11 opt-in recipes layer project-specific discipline on top of the 5 universal rule bundles. Universal rules always install; recipes are pick-and-mix.
241
+
242
+ | Recipe | Install when | Adds |
243
+ |---|---|---|
244
+ | `coding-conventions` | TypeScript / TSX project | PascalCase components, camelCase files, no `any`, Result pattern, `logError()` |
245
+ | `monorepo` | npm/pnpm/yarn workspaces with apps + packages | Folder freeze, no duplicate logic across apps, workspace boundary rules |
246
+ | `i18n` | 2+ locales | All locales required in same PR for new text (partial = INCOMPLETE) |
247
+ | `branch-strategy` | main / develop / release 3-branch | No direct push to main/release, PR + CI required, hotfix path |
248
+ | `web-mobile-parity` | Web + mobile sharing logic | Bug fixes check both surfaces; features ship together |
249
+ | `auto-mock-data` | Frequent DB schema changes | Mock-seed SQL auto-generation on schema change |
250
+ | `tdd` | Test framework present + want Red-Green-Refactor | Test-first loop: failing test before implementation, refactor under green |
251
+ | `debugging` | Any project (root-cause-first discipline) | Reproduce → isolate → root-cause → fix → regression-test; no symptom patching |
252
+ | `database-discipline` | Relational store + migrations + dev/prod split | Migration-first schema changes, access-control on new tables, dev/prod parity |
253
+ | `design-system` | Design-token system in use | Tokens over raw hex, component reuse, accessibility + spacing scale adherence |
254
+ | `self-improvement` | Want periodic, human-approved review of your sessions | A **Reflector** reads recent session trajectories + git and **proposes** lessons-learned to `docs/REFLECTION-PROPOSALS.md` (propose-only; you apply). Emits a session-end trajectory hook, a `/reflect` command, a reflector agent, a deterministic prune, and a weekly runner + scheduling guide — on all six tools. See ADR-030/032/033. |
255
+
256
+ #### Decision tree
257
+
258
+ ```
259
+ TypeScript? YES → coding-conventions
260
+ Monorepo (apps/+packages)? YES → monorepo
261
+ 2+ locales? YES → i18n
262
+ Web + mobile? YES → web-mobile-parity
263
+ 3-branch git? YES → branch-strategy
264
+ DB schema churn? YES → auto-mock-data
265
+ Test framework + TDD? YES → tdd
266
+ Want root-cause debugging? YES → debugging
267
+ Relational DB + migrations? YES → database-discipline
268
+ Design-token system? YES → design-system
269
+ Want weekly session self-review? YES → self-improvement
270
+ ```
271
+
272
+ #### Recommended combos
273
+
274
+ | Project type | Recipes |
275
+ |---|---|
276
+ | Greenfield experiment | None — universal-rules only |
277
+ | Solo SaaS, web, single locale | `coding-conventions` |
278
+ | Web + mobile (single language) | `web-mobile-parity, coding-conventions` |
279
+ | Multi-locale SaaS | `i18n, coding-conventions` |
280
+ | Monorepo SaaS | `monorepo, coding-conventions` |
281
+ | Full-stack (monorepo + multi-locale + web/mobile) | All 10 |
282
+
283
+ ---
284
+
285
+ ## `transform.sh` options reference
286
+
287
+ ```
288
+ Usage: bash adapters/<tool>/transform.sh <target-project> [options]
289
+ ```
290
+
291
+ | Option | Description |
292
+ |---|---|
293
+ | `<target-project>` | Project directory to install into (required). `.` for current dir. |
294
+ | `--recipes=A,B,C` | Comma-separated recipes from the 10 in `core/recipes/`. |
295
+ | `--dry-run` | Preview only — no files written. |
296
+ | `--measure-baseline` | Run `tools/measure-tokens.sh --latest` after install; save CSV; auto-show anti-patterns if cache hit < 95%. |
297
+ | `--no-prompt` | Skip wizard, apply defaults (CI-safe). Combine with `--recipes` and `--measure-baseline` as needed. |
298
+ | `--check-anti-patterns` | Print `core/anti-patterns/README.md` inline and pause 5 seconds. |
299
+ | `--uninstall` (alias `--rollback`) | Manifest-based revert (see [Update](#update--maintenance--uninstall)). Available on Claude adapter (Cursor / Copilot adapters: per-adapter spec). |
300
+ | `--force` | Bypass uninstall safety gates (active rebase/merge, missing manifest). |
301
+ | `-h` `--help` | Print usage. |
302
+
303
+ **Recipe names**: `web-mobile-parity`, `i18n`, `monorepo`, `branch-strategy`, `auto-mock-data`, `coding-conventions`, `tdd`, `debugging`, `database-discipline`, `design-system`.
304
+
305
+ #### File overwrite behavior
306
+
307
+ | File | Already exists |
308
+ |---|---|
309
+ | `CLAUDE.md` / `.cursorrules` / `.github/instructions/all.instructions.md` | Backed up to `.conductor-backup-YYYYMMDD-HHMMSS`, then overwritten |
310
+ | `.claude/rules/*.md` / `.cursor/rules/*.mdc` / `.github/instructions/*.instructions.md` | Backed up + overwritten |
311
+ | `.claude/agents/*.md` | Backed up + overwritten |
312
+ | `.claude/hooks/*.sh` | Overwritten |
313
+ | `.claude/hookify.*.local.md` | **Preserved** (adopter customizations win) |
314
+ | `docs/CURRENT_WORK.md` etc. | **Preserved** (never overwritten) |
315
+
316
+ ---
317
+
318
+ ## Update / Maintenance / Uninstall
319
+
320
+ ### Update Conductor itself
321
+
322
+ ```bash
323
+ cd ~/conductor && git pull
324
+ ```
325
+
326
+ Then re-run `transform.sh` on each target — installs are idempotent. Existing files get fresh timestamped backups before overwrite (manifest tracks every emitted file, see ADR-020).
327
+
328
+ ### Re-measure cache hit (1 week after install)
329
+
330
+ ```bash
331
+ bash ~/conductor/tools/measure-tokens.sh --latest
332
+ ```
333
+
334
+ Compare against the `.conductor/baseline-YYYYMMDD.csv` from `--measure-baseline` at install time. KPI target: cache hit rate ≥ 95% (ADR-014 SLA).
335
+
336
+ ### Uninstall (revert install)
337
+
338
+ The Claude adapter ships with `--uninstall` (manifest-based revert, ADR-020). Cursor / Copilot adapters: see their respective `SUPPORTED-FEATURES.md`.
339
+
340
+ ```bash
341
+ # Preview
342
+ bash ~/conductor/adapters/claude/transform.sh ~/your-project --uninstall --dry-run
343
+
344
+ # Apply
345
+ bash ~/conductor/adapters/claude/transform.sh ~/your-project --uninstall
346
+ ```
347
+
348
+ Behavior:
349
+ - For each manifested file: restore backup if one exists, otherwise delete.
350
+ - Adopter-customized files (anything not in the manifest) are preserved.
351
+ - `.conductor-backup-*` siblings cleaned up.
352
+ - Best-effort `rmdir` of empty `.claude/{rules,agents,hooks}/`.
353
+
354
+ ---
355
+
356
+ ## Token measurement & KPI baseline
357
+
358
+ `tools/measure-tokens.sh` parses Claude Code session JSONL files and reports cache hit rate, input/output token counts, and tool call totals.
359
+
360
+ ```bash
361
+ brew install jq # macOS dependency
362
+ bash ~/conductor/tools/measure-tokens.sh --latest
363
+
364
+ # Export for before/after comparison
365
+ bash ~/conductor/tools/measure-tokens.sh --latest --export-csv=/tmp/before.csv
366
+ # (1 week later, after Conductor install)
367
+ bash ~/conductor/tools/measure-tokens.sh --latest --export-csv=/tmp/after.csv
368
+ ```
369
+
370
+ #### KPI targets (1 week after install)
371
+
372
+ | Metric | Target |
373
+ |---|---|
374
+ | Input tokens / task | -40% |
375
+ | File Reads / task | -50% |
376
+ | Cache hit rate | 100% baseline → ≥ 95% SLA (per ADR-014; the old ≥60% goal is retired — caching is on by default) |
377
+ | Tool calls / task | -30% |
378
+
379
+ > Zero telemetry — all results stay local. No external transmission.
380
+
381
+ ---
382
+
383
+ ## Troubleshooting
384
+
385
+ #### "Permission denied: transform.sh"
386
+
387
+ ```bash
388
+ chmod +x ~/conductor/adapters/<tool>/transform.sh
389
+ bash ~/conductor/adapters/<tool>/transform.sh . --recipes=coding-conventions
390
+ ```
391
+
392
+ #### "CLAUDE.md / .cursorrules already exists"
393
+
394
+ Auto-backed-up to `.conductor-backup-YYYYMMDD-HHMMSS`. Diff against the new file to merge customizations:
395
+
396
+ ```bash
397
+ diff CLAUDE.md.conductor-backup-* CLAUDE.md
398
+ ```
399
+
400
+ #### "recipe not found" warning
401
+
402
+ Check recipe name spelling. Available: `web-mobile-parity`, `i18n`, `monorepo`, `branch-strategy`, `auto-mock-data`, `coding-conventions`, `tdd`, `debugging`, `database-discipline`, `design-system`.
403
+
404
+ #### "Tool doesn't recognize the new rules"
405
+
406
+ Restart the IDE / CLI completely. Rule files are read at session start; live reload is rare.
407
+
408
+ #### "Hooks not firing" (Claude only)
409
+
410
+ ```bash
411
+ ls -la .claude/hooks/ # verify executable bit (-rwxr-xr-x)
412
+ chmod +x .claude/hooks/*.sh # grant if missing
413
+ # Restart Claude Code
414
+ ```
415
+
416
+ Hooks are a Claude-Code-only feature.
417
+
418
+ #### "Disable one hook"
419
+
420
+ ```bash
421
+ rm .claude/hooks/<name>.sh
422
+ # OR remove the entry from .claude/settings.json hooks section
423
+ ```
424
+
425
+ #### Windows-specific: `\r: command not found`
426
+
427
+ CRLF line endings. Fix:
428
+
429
+ ```bash
430
+ git config --global core.autocrlf input
431
+ git checkout -- . # re-checkout with LF
432
+ ```
433
+
434
+ ---
435
+
436
+ ## Memory pattern + ADR index
437
+
438
+ #### 4-type memory pattern (`core/memory-pattern/`)
439
+
440
+ CONDUCTOR uses a 4-type memory directory structure that tools without built-in memory directories (Cursor, Copilot, Gemini, Codex, Windsurf) can adopt as a docs convention:
441
+
442
+ - **project_** — facts about the project (stack, structure, env vars).
443
+ - **user_** — facts about the user (preferences, defaults).
444
+ - **feedback_** — corrections from past mistakes (rule reminders).
445
+ - **reference_** — external IDs, credentials pointers, runbooks.
446
+
447
+ Claude Code uses `~/.claude/projects/.../memory/`; other tools use `docs/memory/` or equivalent — see `core/memory-pattern/README.md`.
448
+
449
+ #### Architecture Decision Records (`docs/DESIGN-DECISIONS.md`)
450
+
451
+ 28 ADRs cover the foundational decisions. Highlights:
452
+
453
+ | ADR | Topic | Why it matters |
454
+ |---|---|---|
455
+ | **ADR-001** | 3-layer architecture (Universal / Adapter / Tool-native) | Why Conductor is multi-tool from day 1 |
456
+ | **ADR-004** | Sub-agents stay Claude-only — no fake polyfill | Honesty principle |
457
+ | **ADR-006** | Bilingual (한/영) rule support | Conductor's korean-first roots |
458
+ | **ADR-014** | Cache hit rate ≥ 95% SLA | The measurable success criterion |
459
+ | **ADR-016** | Reference-adopter ↔ Conductor bidirectional sync | Where production patterns come from |
460
+ | **ADR-020** | `--uninstall` + manifest tracking | Why install is reversible |
461
+ | **ADR-021** | Cursor adapter (`adapters/cursor/transform.sh`) | Adapter design for `.cursor/rules/*.mdc` |
462
+ | **ADR-022** | Copilot adapter (single-format, 5-IDE coverage) | Why one Copilot install covers VSCode + Cursor + Windsurf + JetBrains + Neovim |
463
+ | **ADR-023** | Marketplace strategy + cross-platform | Phase 1 (now: bash) → Phase 2 (v0.3+: VSCode extension) |
464
+
465
+ Full list and bodies: [`docs/DESIGN-DECISIONS.md`](./docs/DESIGN-DECISIONS.md).
466
+
467
+ ---
468
+
469
+ ## FAQ
470
+
471
+ **Q: Why no marketplace install today?**
472
+
473
+ A: ADR-023 — the bash adapter is the validated source of truth. A marketplace extension is Phase 2 / v0.3+; the wrapper depends on the adapter being stable in adopter projects first.
474
+
475
+ **Q: Cursor adopters — do I install from VSCode Marketplace or Open VSX?**
476
+
477
+ A: Open VSX. Cursor is a VSCode fork but cannot pull from Microsoft's marketplace due to ToS (see ADR-023). When the Phase 2 extension ships, it will be cross-published to both registries so you install with one click regardless.
478
+
479
+ **Q: My project uses Go / Python / Rust, not TypeScript.**
480
+
481
+ A: Skip `coding-conventions` (TypeScript-specific). The 5 universal rule bundles and the other 9 recipes are stack-agnostic.
482
+
483
+ **Q: Windows native PowerShell?**
484
+
485
+ A: Phase 3+ (ADR-023). Use Git Bash (ships with Git for Windows) or WSL2.
486
+
487
+ **Q: How do I add custom project-specific rules?**
488
+
489
+ A: Put them in `AGENT.md` at your target's root (Conductor never overwrites this). Or hand-edit `CLAUDE.md` and `diff` against `CLAUDE.md.conductor-backup-*` after re-installs.
490
+
491
+ **Q: Mix Conductor with Superpowers / other frameworks?**
492
+
493
+ A: See `docs/COMPARISON.md` for the conflict-resolution decision tree (3 patterns: Conductor-only / cherry-pick recipes only / both with reconciliation). Running both unmoderated breaks the 95% cache-hit SLA — pick one primary framework.
494
+
495
+ **Q: Idempotent re-install? Will it clobber my edits?**
496
+
497
+ A: Re-running `transform.sh` is safe. Every overwrite creates a timestamped backup (`.conductor-backup-YYYYMMDD-HHMMSS`); your prior state is recoverable. `docs/CURRENT_WORK.md` and other doc templates are NEVER overwritten if they already exist.
498
+
499
+ **Q: Use Conductor before all 6 adapters ship?**
500
+
501
+ A: Yes — all 6 adapters (Claude / Cursor / Copilot / Gemini / Codex / Windsurf) now ship a `transform.sh`. Install any of them with `bash adapters/<tool>/transform.sh <target>` (or `node bin/omniconductor.js init --target=<tool> <target>`). `docs/MANUAL-INSTALL.md` (copy-paste commands) remains as a fallback only.
502
+
503
+ **Q: Telemetry?**
504
+
505
+ A: None. `tools/measure-tokens.sh` reads local Claude Code session JSONL only and writes local CSV. No external network calls anywhere in Conductor.
506
+
507
+ ---
508
+
509
+ ## Contributing
510
+
511
+ See [`docs/CONTRIBUTING.md`](./docs/CONTRIBUTING.md).
512
+
513
+ The 3-layer architecture (ADR-001) means:
514
+ - New rule → edit `core/universal-rules/` once; all adapters benefit on next install.
515
+ - New tool → add `adapters/<tool>/transform.sh` modeled on existing adapters; `core/` untouched.
516
+ - New recipe → drop into `core/recipes/`; appears in `--recipes=` automatically.
517
+
518
+ ---
519
+
520
+ ### License
521
+
522
+ Apache License 2.0 — free and open for any use, including commercial. Only the **CONDUCTOR** name is reserved: it is a trademark of LFamily Labs LLC (take the code, not the name). See `LICENSE`, `NOTICE`, and `TRADEMARKS.md`.
523
+
524
+ ### Credits
525
+
526
+ Born from one year of production iteration at LFamily Labs. The rules, agents, hooks, and memory patterns that survived real shipping pressure. The bidirectional sync between Conductor and its reference adopter is documented in ADR-016.
@@ -0,0 +1,31 @@
1
+ # Third-Party Notices
2
+
3
+ CONDUCTOR is licensed under Apache 2.0 (see `LICENSE`) and is independently
4
+ written. This file acknowledges idea-level influences and records the
5
+ nominative use of third-party names. CONDUCTOR does not reproduce substantial
6
+ verbatim text from any third-party project, so no third-party license
7
+ reproduction is required; the acknowledgments below are good-faith courtesy.
8
+
9
+ ---
10
+
11
+ ## Superpowers (acknowledgment)
12
+
13
+ - Project: **Superpowers** — https://github.com/obra/superpowers (© 2025 Jesse Vincent, MIT)
14
+
15
+ CONDUCTOR's `core/recipes/tdd.md` and `core/recipes/debugging.md` are
16
+ independently written. The underlying methods — Red-Green-Refactor (Kent Beck)
17
+ and four-phase, root-cause-first debugging — are long-standing public software
18
+ practices owned by no project. Their structure was informed in part, at the
19
+ idea level, by the corresponding Superpowers skills; **no substantial verbatim
20
+ text from Superpowers is reproduced.** This is therefore a good-faith courtesy
21
+ acknowledgment, not a required MIT attribution.
22
+
23
+ ---
24
+
25
+ ## Trademarks of other projects
26
+
27
+ Names such as Superpowers, GSD, SpecKit, BMAD, Cursor, GitHub Copilot, Gemini,
28
+ Codex, Windsurf, Claude, MetaGPT, and CrewAI are used **nominatively** — only to
29
+ identify those products for comparison or interoperability. They are the
30
+ trademarks of their respective owners. Their use here does not imply
31
+ endorsement, affiliation, or sponsorship.
package/TRADEMARKS.md ADDED
@@ -0,0 +1,26 @@
1
+ # Trademark Policy
2
+
3
+ **"CONDUCTOR"** (the name, and any logo) is a trademark of **LFamily Labs LLC**.
4
+
5
+ The software is licensed under the **Apache License 2.0**, which is permissive:
6
+ you may use, modify, distribute, and build commercial products with it, for free.
7
+ **The code is open; the brand is not.** Apache 2.0 §6 explicitly does not grant
8
+ trademark rights.
9
+
10
+ ## You MAY (no permission needed)
11
+ - Use, modify, and redistribute the software (including commercially).
12
+ - Build and sell your own products that use CONDUCTOR.
13
+ - Make a fork — under **a different name** — with attribution preserved (NOTICE).
14
+ - Truthfully say your product "uses CONDUCTOR" or "is built on CONDUCTOR."
15
+
16
+ ## You MAY NOT (without written permission from LFamily Labs LLC)
17
+ - Name your fork, product, or service "CONDUCTOR" or a confusingly similar name.
18
+ - Use the CONDUCTOR name/logo in a way that implies it is the official project,
19
+ or that LFamily Labs endorses your version.
20
+ - Remove or alter the copyright/attribution in `NOTICE` / `LICENSE`.
21
+
22
+ In short: **take the code, not the name.** This is the same model used by many
23
+ open-source projects to stay open while preventing others from passing off a
24
+ modified copy as the original.
25
+
26
+ Questions / permission requests: open an issue, or contact LFamily Labs LLC.