@wooojin/forgen 0.2.0 → 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.
- package/CHANGELOG.md +72 -0
- package/README.ja.md +79 -14
- package/README.ko.md +100 -14
- package/README.md +124 -17
- package/README.zh.md +79 -14
- package/agents/analyst.md +48 -4
- package/agents/architect.md +39 -4
- package/agents/code-reviewer.md +107 -77
- package/agents/critic.md +47 -4
- package/agents/debugger.md +46 -4
- package/agents/designer.md +40 -4
- package/agents/executor.md +112 -30
- package/agents/explore.md +45 -5
- package/agents/git-master.md +48 -4
- package/agents/planner.md +121 -18
- package/agents/test-engineer.md +58 -4
- package/agents/verifier.md +92 -77
- package/commands/architecture-decision.md +127 -258
- package/commands/calibrate.md +225 -0
- package/commands/code-review.md +163 -178
- package/commands/compound.md +127 -68
- package/commands/deep-interview.md +273 -0
- package/commands/docker.md +68 -178
- package/commands/forge-loop.md +215 -0
- package/commands/learn.md +231 -0
- package/commands/retro.md +215 -0
- package/commands/ship.md +277 -0
- package/dist/cli.js +26 -9
- package/dist/core/auto-compound-runner.js +14 -0
- package/dist/core/config-injector.d.ts +2 -1
- package/dist/core/config-injector.js +2 -1
- package/dist/core/dashboard.d.ts +108 -0
- package/dist/core/dashboard.js +495 -0
- package/dist/core/doctor.js +151 -21
- package/dist/core/drift-score.d.ts +49 -0
- package/dist/core/drift-score.js +87 -0
- package/dist/core/harness.d.ts +6 -1
- package/dist/core/harness.js +75 -19
- package/dist/core/mcp-config.d.ts +2 -0
- package/dist/core/mcp-config.js +6 -1
- package/dist/core/paths.d.ts +6 -1
- package/dist/core/paths.js +18 -2
- package/dist/core/spawn.d.ts +3 -2
- package/dist/core/spawn.js +27 -8
- package/dist/core/types.d.ts +34 -0
- package/dist/engine/compound-export.d.ts +41 -0
- package/dist/engine/compound-export.js +169 -0
- package/dist/engine/compound-lifecycle.d.ts +4 -3
- package/dist/engine/compound-lifecycle.js +91 -46
- package/dist/engine/compound-loop.js +18 -0
- package/dist/engine/meta-learning/adaptive-thresholds.d.ts +20 -0
- package/dist/engine/meta-learning/adaptive-thresholds.js +126 -0
- package/dist/engine/meta-learning/extraction-tuner.d.ts +15 -0
- package/dist/engine/meta-learning/extraction-tuner.js +99 -0
- package/dist/engine/meta-learning/matcher-weight-tuner.d.ts +21 -0
- package/dist/engine/meta-learning/matcher-weight-tuner.js +151 -0
- package/dist/engine/meta-learning/runner.d.ts +14 -0
- package/dist/engine/meta-learning/runner.js +90 -0
- package/dist/engine/meta-learning/scope-promoter.d.ts +21 -0
- package/dist/engine/meta-learning/scope-promoter.js +84 -0
- package/dist/engine/meta-learning/session-quality-scorer.d.ts +61 -0
- package/dist/engine/meta-learning/session-quality-scorer.js +166 -0
- package/dist/engine/meta-learning/types.d.ts +114 -0
- package/dist/engine/meta-learning/types.js +43 -0
- package/dist/engine/solution-format.d.ts +2 -2
- package/dist/engine/solution-format.js +249 -34
- package/dist/engine/solution-index.d.ts +1 -1
- package/dist/engine/solution-matcher.d.ts +30 -1
- package/dist/engine/solution-matcher.js +235 -45
- package/dist/fgx.js +12 -8
- package/dist/hooks/context-guard.d.ts +15 -0
- package/dist/hooks/context-guard.js +218 -56
- package/dist/hooks/db-guard.js +2 -2
- package/dist/hooks/hook-config.d.ts +27 -1
- package/dist/hooks/hook-config.js +72 -12
- package/dist/hooks/hooks-generator.d.ts +3 -0
- package/dist/hooks/hooks-generator.js +23 -6
- package/dist/hooks/intent-classifier.d.ts +0 -2
- package/dist/hooks/intent-classifier.js +32 -18
- package/dist/hooks/keyword-detector.js +126 -204
- package/dist/hooks/notepad-injector.js +2 -2
- package/dist/hooks/permission-handler.js +2 -2
- package/dist/hooks/post-tool-failure.js +12 -6
- package/dist/hooks/post-tool-handlers.d.ts +1 -1
- package/dist/hooks/post-tool-handlers.js +14 -11
- package/dist/hooks/post-tool-use.d.ts +11 -0
- package/dist/hooks/post-tool-use.js +184 -71
- package/dist/hooks/pre-compact.d.ts +11 -1
- package/dist/hooks/pre-compact.js +112 -37
- package/dist/hooks/pre-tool-use.js +86 -56
- package/dist/hooks/rate-limiter.js +3 -3
- package/dist/hooks/secret-filter.js +2 -2
- package/dist/hooks/session-recovery.js +256 -236
- package/dist/hooks/shared/hook-response.d.ts +4 -4
- package/dist/hooks/shared/hook-response.js +13 -24
- package/dist/hooks/shared/hook-timing.d.ts +15 -0
- package/dist/hooks/shared/hook-timing.js +64 -0
- package/dist/hooks/skill-injector.d.ts +4 -3
- package/dist/hooks/skill-injector.js +47 -16
- package/dist/hooks/slop-detector.js +3 -3
- package/dist/hooks/solution-injector.js +224 -197
- package/dist/hooks/subagent-tracker.js +2 -2
- package/dist/host/codex-adapter.d.ts +10 -0
- package/dist/host/codex-adapter.js +154 -0
- package/dist/mcp/solution-reader.d.ts +5 -5
- package/dist/mcp/solution-reader.js +34 -24
- package/dist/renderer/rule-renderer.js +9 -11
- package/dist/services/session.d.ts +19 -0
- package/dist/services/session.js +62 -0
- package/hooks/hooks.json +2 -2
- package/package.json +2 -1
- package/skills/architecture-decision/SKILL.md +113 -257
- package/skills/calibrate/SKILL.md +207 -0
- package/skills/code-review/SKILL.md +151 -178
- package/skills/compound/SKILL.md +126 -68
- package/skills/deep-interview/SKILL.md +266 -0
- package/skills/docker/SKILL.md +57 -179
- package/skills/forge-loop/SKILL.md +198 -0
- package/skills/learn/SKILL.md +216 -0
- package/skills/retro/SKILL.md +199 -0
- package/skills/ship/SKILL.md +259 -0
- package/agents/code-simplifier.md +0 -197
- package/agents/performance-reviewer.md +0 -172
- package/agents/qa-tester.md +0 -158
- package/agents/refactoring-expert.md +0 -168
- package/agents/scientist.md +0 -144
- package/agents/security-reviewer.md +0 -137
- package/agents/writer.md +0 -184
- package/commands/api-design.md +0 -268
- package/commands/ci-cd.md +0 -270
- package/commands/database.md +0 -263
- package/commands/debug-detective.md +0 -99
- package/commands/documentation.md +0 -276
- package/commands/ecomode.md +0 -51
- package/commands/frontend.md +0 -271
- package/commands/git-master.md +0 -90
- package/commands/incident-response.md +0 -292
- package/commands/migrate.md +0 -101
- package/commands/performance.md +0 -288
- package/commands/refactor.md +0 -105
- package/commands/security-review.md +0 -288
- package/commands/tdd.md +0 -183
- package/commands/testing-strategy.md +0 -265
- package/skills/api-design/SKILL.md +0 -262
- package/skills/ci-cd/SKILL.md +0 -264
- package/skills/database/SKILL.md +0 -257
- package/skills/debug-detective/SKILL.md +0 -95
- package/skills/documentation/SKILL.md +0 -270
- package/skills/ecomode/SKILL.md +0 -46
- package/skills/frontend/SKILL.md +0 -265
- package/skills/git-master/SKILL.md +0 -86
- package/skills/incident-response/SKILL.md +0 -286
- package/skills/migrate/SKILL.md +0 -96
- package/skills/performance/SKILL.md +0 -282
- package/skills/refactor/SKILL.md +0 -100
- package/skills/security-review/SKILL.md +0 -282
- package/skills/tdd/SKILL.md +0 -178
- package/skills/testing-strategy/SKILL.md +0 -260
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,78 @@ All notable changes to forgen will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [0.3.0] - 2026-04-15
|
|
9
|
+
|
|
10
|
+
### BREAKING
|
|
11
|
+
|
|
12
|
+
- **Skill consolidation: 21 → 10**. Removed: refactor, tdd, testing-strategy, documentation, git-master, ecomode, specify, performance, incident-response, database, frontend, ci-cd, api-design, debug-detective, migrate, security-review. Most were generic checklists; their content is better handled by Claude natively or absorbed into remaining skills.
|
|
13
|
+
- **Agent consolidation: 19 → 12**. Removed: performance-reviewer, security-reviewer (merged into code-reviewer as review perspectives), refactoring-expert, code-simplifier (merged into executor), scientist, qa-tester (merged into verifier), writer.
|
|
14
|
+
- **Custom frontmatter removed**: Agents no longer use `tier` and `lane` fields (Claude Code ignored them anyway).
|
|
15
|
+
|
|
16
|
+
### Added
|
|
17
|
+
|
|
18
|
+
- **5 new skills** designed from best-in-class research (OMC ralph, gstack /ship, /retro, /learn):
|
|
19
|
+
- `forge-loop`: PRD-based iteration with Stop hook persistence. Prevents polite-stop anti-pattern.
|
|
20
|
+
- `ship`: 15-step automated release pipeline with "never ask, just do" philosophy + Review Readiness Dashboard + Verification Gate.
|
|
21
|
+
- `retro`: Weekly retrospective with git analysis + compound health + learning trend + compare mode.
|
|
22
|
+
- `learn`: Compound knowledge management — 5 subcommands (search/stats/prune/export/import) with stale & duplicate detection.
|
|
23
|
+
- `calibrate`: Evidence-based profile adjustment — quantitative protocol, 3-correction threshold, max 2 axes per calibration.
|
|
24
|
+
- **Stop hook forge-loop integration** (`context-guard.ts`): When `.forgen/state/forge-loop.json` has incomplete stories, Stop is blocked with persistence message. Circuit breakers: 2h stale threshold, 30 max blocks.
|
|
25
|
+
- **Learning Dashboard** (`forgen dashboard`): New "Learning Curve" section showing correction trend (7d vs prev 7d), top correction axes, activity days, estimated time saved via compound injections.
|
|
26
|
+
- **Session Summary with Counterfactual**: Session end message now includes "주입된 compound: N건 / 추정 절약 시간: Xh Ym (forgen 없었으면 시행착오 필요)".
|
|
27
|
+
- **Plugin system**: `.forgen/skills/*.md` scan path added. Project-level custom skills supported.
|
|
28
|
+
- **Stale agent cleanup**: `harness.ts` `installAgents` now removes `ch-*.md` files that don't exist in current source (with marker + hash verification for user-modification safety).
|
|
29
|
+
|
|
30
|
+
### Changed
|
|
31
|
+
|
|
32
|
+
- **All 10 skills upgraded** with `<Compound_Integration>`, `<Failure_Modes>`, `argument-hint`. Density dramatically improved despite fewer skills.
|
|
33
|
+
- **All 12 agents upgraded** with `<Failure_Modes_To_Avoid>`, `<Examples>` (Good/Bad), `<Success_Criteria>`, and official frontmatter (`maxTurns`, `color`, `permissionMode`).
|
|
34
|
+
- **deep-interview rewritten** using OMC research: weighted 4-dimension scoring, 3 challenge modes (Contrarian/Simplifier/Ontologist), ontology stability tracking, anti-sycophancy rules, one-question-at-a-time protocol.
|
|
35
|
+
- **Cancel flow**: `cancelforgen` now also deletes `forge-loop.json` to release Stop hook block.
|
|
36
|
+
- **Install is global-only**: `package.json` sets `preferGlobal: true` so non-global installs surface a warning (forgen is a CLI on PATH; local installs were unreachable).
|
|
37
|
+
- **README**: Added "12 built-in agents" section grouped by tool access (read-only / plan-only / write-enabled) with the absorbed-agent mapping from the 19→12 consolidation.
|
|
38
|
+
|
|
39
|
+
### Fixed
|
|
40
|
+
|
|
41
|
+
- **Agent parser compat**: Moved `<!-- forgen-managed -->` marker below YAML frontmatter in all 12 `agents/*.md`. Claude Code's agent parser requires `---` on line 1; the prior position caused `Agent(subagent_type: "ch-*")` to fail with "not found" while the file stayed marked as managed.
|
|
42
|
+
- **README install typo**: `npm install -g /forgen` → `npm install -g @wooojin/forgen` (missing scope).
|
|
43
|
+
- **flaky e2e test**: `runHook` helper in `tests/e2e/chain-verification.test.ts` now requires the parsed stdout JSON to carry a `continue` field, preventing stray log lines from satisfying the parser and producing false `continue:false` matches. Verified stable across 3 consecutive full runs (1541/1541 each).
|
|
44
|
+
|
|
45
|
+
### Documentation
|
|
46
|
+
|
|
47
|
+
- `docs/weakness-analysis-2026-04-14.md` — Competitor analysis vs 7 harness tools
|
|
48
|
+
- `docs/design-skills-agents-plugins.md` — Full design specification with implementation status
|
|
49
|
+
- `docs/skill-scenarios.md` — 12 developer scenarios × skill usage matrix
|
|
50
|
+
- `docs/positioning-and-selling.md` — Market positioning and Go-to-Market strategy
|
|
51
|
+
|
|
52
|
+
## [0.2.1] - 2026-04-13
|
|
53
|
+
|
|
54
|
+
### Added
|
|
55
|
+
- **specify skill**: Structured requirement specification with Resolved/Provisional/Unresolved 3-level evaluation and readiness percentage
|
|
56
|
+
- **deep-interview skill**: Deep requirement interview with Ambiguity Score (0-10) quantification across 5 axes (What/Who/How/When/Why)
|
|
57
|
+
- **Agent output validation** (Tier 2-F): PostToolUse hook validates sub-agent output for empty/failed/timeout/context overflow
|
|
58
|
+
- **BM25 ensemble scoring** (2-C): 3-way ensemble (TF-IDF 0.5 + BM25 0.3 + bigram 0.2) for solution matching
|
|
59
|
+
- **Intent-based context injection** (2-B): implement/debug/refactor/review intents inject domain-specific rules
|
|
60
|
+
- **Harness maturity diagnosis**: `forgen doctor` shows 5-axis L0-L3 maturity score with Quick Wins
|
|
61
|
+
- **Session brief handoff**: Structured brief saved before compact, restored on next session start
|
|
62
|
+
- **Output overflow prevention**: Solution injection footer includes head_limit guidance
|
|
63
|
+
|
|
64
|
+
### Fixed
|
|
65
|
+
- **Korean `\b` boundary**: Fixed 7 regex patterns where `\b` failed with Korean text (intent-classifier, keyword-detector)
|
|
66
|
+
- **Revert→drift connection**: `isRevert` was always false (checked messages array instead of boolean flag)
|
|
67
|
+
- **ALL_MODES missing specify**: `cancelforgen` didn't clear specify state
|
|
68
|
+
- **MCP list TypeError**: Crashed on url-format servers without `args` field
|
|
69
|
+
- **Agent empty string**: Empty string (`""`) was falsy, skipping validation
|
|
70
|
+
- **Solution content regex**: `\Z` is not valid in JavaScript (literal Z), changed to `$`
|
|
71
|
+
- **`severity: 'info' as 'warning'`**: Removed forced type assertion
|
|
72
|
+
|
|
73
|
+
### Changed
|
|
74
|
+
- **Rule renderer AI optimization** (2-A): `[category|strength]` tag prefix format, `include_pack_summary` defaults to false (token reduction)
|
|
75
|
+
- **Recovery messages** (1-A): ENOENT suggests Glob search, EACCES suggests chmod
|
|
76
|
+
- **skill-injector lock**: Session cache protected with `withFileLockSync` (race condition fix)
|
|
77
|
+
- **incrementFailureCounter lock**: Context signals protected with `withFileLockSync`
|
|
78
|
+
- Docker E2E expanded to 68 checks (Phase 8: Hoyeon analysis verification)
|
|
79
|
+
|
|
8
80
|
## [5.1.0] - 2026-04-06
|
|
9
81
|
|
|
10
82
|
### Fixed
|
package/README.ja.md
CHANGED
|
@@ -182,14 +182,63 @@ forgen
|
|
|
182
182
|
|
|
183
183
|
### Compound 知識
|
|
184
184
|
|
|
185
|
-
|
|
185
|
+
知識はセッションを跨いで、信頼度ベースのライフサイクルで蓄積されます:
|
|
186
|
+
|
|
187
|
+
```
|
|
188
|
+
experiment (0.30) → candidate (0.55) → verified (0.75) → mature (0.90)
|
|
189
|
+
```
|
|
190
|
+
|
|
191
|
+
各ソリューションは `experiment` として始まります。セッションをまたいでコードに反映されるにつれ、自動的に昇格されます。ネガティブなエビデンスはサーキットブレーカーを発動させ(自動リタイア)、実際に機能するパターンだけが残ります。
|
|
186
192
|
|
|
187
193
|
| 種類 | ソース | Claude の活用方法 |
|
|
188
194
|
|------|--------|------------------|
|
|
189
|
-
| **ソリューション** | セッションから抽出 |
|
|
190
|
-
| **スキル** | 検証済みソリューションから昇格 |
|
|
195
|
+
| **ソリューション** | セッションから抽出 | プロンプトに関連するものを自動注入(TF-IDF + BM25 + bigram アンサンブル) |
|
|
196
|
+
| **スキル** | 21個の組み込み + 検証済みソリューションから昇格 | キーワードで有効化(`specify`、`deep-interview`、`tdd` など) |
|
|
191
197
|
| **行動パターン** | 3回以上の観察で自動検出 | `forge-behavioral.md` に適用 |
|
|
192
|
-
| **エビデンス** | 修正 + 観察 |
|
|
198
|
+
| **エビデンス** | 修正 + 観察 | ファセット調整 + ルール作成を促進 |
|
|
199
|
+
|
|
200
|
+
### ソリューション自動注入
|
|
201
|
+
|
|
202
|
+
入力したプロンプトはすべて、蓄積されたソリューションと照合されます。関連するものはClaudeのコンテキストに自動注入されます — 手動検索は不要です。
|
|
203
|
+
|
|
204
|
+
```
|
|
205
|
+
入力: "API のエラーハンドリングを修正して"
|
|
206
|
+
↓
|
|
207
|
+
solution-injector がマッチ: starter-error-handling-patterns (0.70)
|
|
208
|
+
↓
|
|
209
|
+
Claude が見るもの: "Matched solutions: error-handling-patterns [pattern|0.70]
|
|
210
|
+
Use try/catch with specific error types. Always log original error..."
|
|
211
|
+
↓
|
|
212
|
+
Claude が蓄積されたパターンを参照して、より良いエラーハンドリングコードを書く。
|
|
213
|
+
```
|
|
214
|
+
|
|
215
|
+
### 21個の組み込みスキル
|
|
216
|
+
|
|
217
|
+
プロンプトにキーワードを含めることで有効化:
|
|
218
|
+
|
|
219
|
+
| スキル | トリガー | 機能 |
|
|
220
|
+
|-------|---------|------|
|
|
221
|
+
| `specify` | "specify", "명세" | 要件を Resolved/Provisional/Unresolved で整理、準備度 % 付き |
|
|
222
|
+
| `deep-interview` | "deep-interview" | Ambiguity Score (0-10) 付きの深い要件インタビュー |
|
|
223
|
+
| `code-review` | "code review 해줘" | 重大度評価付き20項目チェックリストレビュー |
|
|
224
|
+
| `tdd` | "tdd 해줘" | Red-Green-Refactor テスト駆動開発 |
|
|
225
|
+
| `debug-detective` | "debug-detective" | 再現 → 分離 → 修正 → 検証のループ |
|
|
226
|
+
| `refactor` | "refactor 시작" | テストファーストの安全なリファクタリング |
|
|
227
|
+
| `git-master` | "git-master" | アトミックコミット + クリーンな履歴管理 |
|
|
228
|
+
| `security-review` | "security review" | OWASP Top 10 脆弱性チェック |
|
|
229
|
+
| `ecomode` | "ecomode", "에코 모드" | トークン節約モード |
|
|
230
|
+
| `migrate` | "migrate 해줘", "마이그레이션 시작" | 5フェーズの安全なマイグレーションワークフロー |
|
|
231
|
+
| ... | | 残り11個(api-design, architecture-decision, ci-cd, database, docker, documentation, frontend, incident-response, performance, testing-strategy, compound) |
|
|
232
|
+
|
|
233
|
+
### セッション管理
|
|
234
|
+
|
|
235
|
+
| 機能 | 動作 |
|
|
236
|
+
|------|------|
|
|
237
|
+
| **セッションブリーフ** | コンテキスト圧縮前に構造化されたブリーフを保存し、次のセッションで復元 |
|
|
238
|
+
| **ドリフト検出** | EWMA ベースの編集レート追跡 → 15編集で警告、30で危機的、50でハードストップ |
|
|
239
|
+
| **エージェント出力検証** | Claude がサブエージェントを生成すると、その出力品質が自動検証される |
|
|
240
|
+
| **自動コンパクト** | 累積12万文字でコンテキスト圧縮の指示 |
|
|
241
|
+
| **ペンディング compound** | 20回以上のプロンプトセッション後、次のセッションで compound 抽出が自動トリガー |
|
|
193
242
|
|
|
194
243
|
---
|
|
195
244
|
|
|
@@ -337,6 +386,12 @@ forgen me # パーソナルダッシュボード(inspect
|
|
|
337
386
|
```bash
|
|
338
387
|
forgen compound # 蓄積された知識をプレビュー
|
|
339
388
|
forgen compound --save # 自動分析されたパターンを保存
|
|
389
|
+
forgen compound list # ステータス付きで全ソリューションを一覧表示
|
|
390
|
+
forgen compound inspect <名前> # ソリューションの詳細を表示
|
|
391
|
+
forgen compound --lifecycle # 昇格/降格チェックを実行
|
|
392
|
+
forgen compound --verify <名前> # 手動で verified に昇格
|
|
393
|
+
forgen compound export # 知識を tar.gz でエクスポート
|
|
394
|
+
forgen compound import <パス> # 知識アーカイブをインポート
|
|
340
395
|
forgen skill promote <名前> # 検証済みソリューションをスキルに昇格
|
|
341
396
|
forgen skill list # 昇格されたスキルの一覧
|
|
342
397
|
```
|
|
@@ -345,10 +400,14 @@ forgen skill list # 昇格されたスキルの一覧
|
|
|
345
400
|
|
|
346
401
|
```bash
|
|
347
402
|
forgen init # プロジェクトを初期化
|
|
348
|
-
forgen doctor #
|
|
349
|
-
forgen
|
|
403
|
+
forgen doctor # システム診断(10カテゴリ + ハーネス成熟度)
|
|
404
|
+
forgen dashboard # 知識概要(6セクション)
|
|
405
|
+
forgen config hooks # フック状態 + コンテキストバジェットを確認
|
|
350
406
|
forgen config hooks --regenerate # フックを再生成
|
|
351
|
-
forgen mcp
|
|
407
|
+
forgen mcp list # インストール済み MCP サーバーを一覧
|
|
408
|
+
forgen mcp add <名前> # テンプレートから MCP サーバーを追加
|
|
409
|
+
forgen mcp templates # 利用可能なテンプレートを表示
|
|
410
|
+
forgen notepad show # セッションノートパッドを表示
|
|
352
411
|
forgen uninstall # forgen をきれいに削除
|
|
353
412
|
```
|
|
354
413
|
|
|
@@ -356,12 +415,14 @@ forgen uninstall # forgen をきれいに削除
|
|
|
356
415
|
|
|
357
416
|
| ツール | 目的 |
|
|
358
417
|
|--------|------|
|
|
359
|
-
| `compound-search` |
|
|
360
|
-
| `compound-read` |
|
|
361
|
-
| `compound-list` |
|
|
362
|
-
| `compound-stats` |
|
|
418
|
+
| `compound-search` | クエリで蓄積された知識を検索(TF-IDF + BM25 + bigram アンサンブル) |
|
|
419
|
+
| `compound-read` | ソリューション全文を読む(Progressive Disclosure Tier 3) |
|
|
420
|
+
| `compound-list` | ステータス/タイプ/スコープフィルタ付きソリューション一覧 |
|
|
421
|
+
| `compound-stats` | ステータス・タイプ・スコープ別の概要統計 |
|
|
363
422
|
| `session-search` | 過去のセッション会話を検索(SQLite FTS5、Node.js 22+) |
|
|
364
423
|
| `correction-record` | ユーザー修正を構造化されたエビデンスとして記録 |
|
|
424
|
+
| `profile-read` | 現在のパーソナライゼーションプロファイルを読む |
|
|
425
|
+
| `rule-list` | カテゴリ別のアクティブなパーソナライゼーションルールを一覧 |
|
|
365
426
|
|
|
366
427
|
---
|
|
367
428
|
|
|
@@ -431,10 +492,12 @@ rule-renderer.ts Rule[] を自然言語に変換:
|
|
|
431
492
|
| **pre-tool-use** | すべてのツール実行前 | `rm -rf`、`curl\|sh`、`--force` push、危険なパターンをブロック |
|
|
432
493
|
| **db-guard** | SQL 操作 | `DROP TABLE`、`WHERE` なし `DELETE`、`TRUNCATE` をブロック |
|
|
433
494
|
| **secret-filter** | ファイル書き込み、出力 | API キー、トークン、認証情報の露出時に警告 |
|
|
434
|
-
| **slop-detector** | コード生成後 | TODO 残骸、`eslint-disable`、`as any`、`@ts-ignore
|
|
495
|
+
| **slop-detector** | コード生成後 | TODO 残骸、`eslint-disable`、`as any`、`@ts-ignore`、空の catch を検出 |
|
|
435
496
|
| **prompt-injection-filter** | すべての入力 | パターン + ヒューリスティックによるプロンプトインジェクションのブロック |
|
|
436
|
-
| **context-guard** | セッション中 |
|
|
497
|
+
| **context-guard** | セッション中 | 50プロンプト/20万文字で警告、12万文字で自動コンパクト、セッションハンドオフ |
|
|
437
498
|
| **rate-limiter** | MCP ツール呼び出し | 過度な MCP ツール呼び出しを防止 |
|
|
499
|
+
| **drift-detector** | ファイル編集 | EWMA ベースのドリフトスコア: 警告 → 危機的 → 50編集でハードストップ |
|
|
500
|
+
| **agent-validator** | エージェントツール出力 | 空/失敗/切り捨てられたサブエージェント出力を警告 |
|
|
438
501
|
|
|
439
502
|
安全ルールは**ハード制約**です -- パック選択や修正で上書きできません。レンダリングされたルールの「Must Not」セクションは、プロファイルに関係なく常に存在します。
|
|
440
503
|
|
|
@@ -460,7 +523,9 @@ rule-renderer.ts Rule[] を自然言語に変換:
|
|
|
460
523
|
|
|
461
524
|
## 共存
|
|
462
525
|
|
|
463
|
-
forgen はインストール時に他の Claude Code プラグイン(oh-my-claudecode、superpowers、claude-mem
|
|
526
|
+
forgen はインストール時に他の Claude Code プラグイン(oh-my-claudecode、superpowers、claude-mem)を検出し、コンテキスト注入を自動的に50%削減します(「譲歩原則」)。コアのセーフティフックと compound フックは常にアクティブを維持します。他のプラグインがすでに提供しているスキルは競合を避けるためスキップされます。
|
|
527
|
+
|
|
528
|
+
詳細は [共存ガイド](docs/guides/with-omc.md) を参照してください。
|
|
464
529
|
|
|
465
530
|
---
|
|
466
531
|
|
package/README.ko.md
CHANGED
|
@@ -182,14 +182,74 @@ forgen
|
|
|
182
182
|
|
|
183
183
|
### Compound 지식
|
|
184
184
|
|
|
185
|
-
지식은 세션을 거치며
|
|
185
|
+
지식은 세션을 거치며 신뢰도 기반 라이프사이클로 축적됩니다:
|
|
186
|
+
|
|
187
|
+
```
|
|
188
|
+
experiment (0.30) → candidate (0.55) → verified (0.75) → mature (0.90)
|
|
189
|
+
```
|
|
190
|
+
|
|
191
|
+
각 솔루션은 `experiment`로 시작합니다. 세션을 거치며 코드에 반영될수록 자동 승격됩니다. 부정적 evidence는 서킷 브레이커를 작동시켜 자동 은퇴시킵니다. 실제로 당신에게 맞는 패턴만 살아남습니다.
|
|
186
192
|
|
|
187
193
|
| 유형 | 출처 | Claude 활용 방법 |
|
|
188
194
|
|------|------|-----------------|
|
|
189
|
-
| **솔루션** | 세션에서 추출 |
|
|
190
|
-
| **스킬** | 검증된 솔루션에서 승격 |
|
|
195
|
+
| **솔루션** | 세션에서 추출 | 프롬프트와 관련 있을 때 자동 주입 (TF-IDF + BM25 + bigram 앙상블) |
|
|
196
|
+
| **스킬** | 10개 내장 + 검증된 솔루션에서 승격 | 키워드로 활성화 (`deep-interview`, `forge-loop`, `ship` 등) |
|
|
191
197
|
| **행동 패턴** | 3회 이상 관찰 시 자동 감지 | `forge-behavioral.md`에 적용 |
|
|
192
|
-
| **Evidence** | 교정 + 관찰 | facet
|
|
198
|
+
| **Evidence** | 교정 + 관찰 | facet 조정 및 규칙 생성의 근거 |
|
|
199
|
+
|
|
200
|
+
### Solution 자동 주입
|
|
201
|
+
|
|
202
|
+
입력하는 모든 프롬프트가 축적된 솔루션과 매칭됩니다. 관련 솔루션은 Claude의 컨텍스트에 자동 주입됩니다 — 직접 찾아볼 필요가 없습니다.
|
|
203
|
+
|
|
204
|
+
```
|
|
205
|
+
입력: "API의 에러 핸들링을 고쳐줘"
|
|
206
|
+
↓
|
|
207
|
+
solution-injector 매칭: starter-error-handling-patterns (0.70)
|
|
208
|
+
↓
|
|
209
|
+
Claude에게 전달: "매칭된 솔루션: error-handling-patterns [pattern|0.70]
|
|
210
|
+
특정 에러 타입으로 try/catch 사용. 원본 에러는 반드시 로깅..."
|
|
211
|
+
↓
|
|
212
|
+
Claude가 축적된 패턴을 바탕으로 더 나은 에러 핸들링 코드를 작성합니다.
|
|
213
|
+
```
|
|
214
|
+
|
|
215
|
+
### 10개 내장 스킬
|
|
216
|
+
|
|
217
|
+
엄선된 compound-native 스킬. 모든 스킬이 축적된 지식과 연동 — 쓸수록 정확해집니다.
|
|
218
|
+
|
|
219
|
+
**핵심 체인** (빌드 → 학습):
|
|
220
|
+
|
|
221
|
+
| 스킬 | 트리거 | 기능 |
|
|
222
|
+
|------|--------|------|
|
|
223
|
+
| `deep-interview` | "deep-interview", "딥인터뷰" | 가중 4차원 ambiguity 점수, 3개 챌린지 모드 (Contrarian/Simplifier/Ontologist), 온톨로지 추적 |
|
|
224
|
+
| `forge-loop` | "forge-loop", "끝까지" | PRD 기반 반복 루프. Stop 훅이 polite-stop 방지. Verifier가 fresh evidence 강제 |
|
|
225
|
+
| `compound` | "복리화", "compound" | 5-Question 품질 필터로 패턴 추출. Health dashboard 포함 |
|
|
226
|
+
|
|
227
|
+
**관리 체인** (리뷰 → 튜닝):
|
|
228
|
+
|
|
229
|
+
| 스킬 | 트리거 | 기능 |
|
|
230
|
+
|------|--------|------|
|
|
231
|
+
| `retro` | "retro", "회고" | 주간 회고: git 분석 + compound 건강도 + 학습 추세 + 3가지 추천 |
|
|
232
|
+
| `learn` | "learn prune", "compound 정리" | 5개 서브커맨드: search/stats/prune/export/import. Stale & 중복 자동 감지 |
|
|
233
|
+
| `calibrate` | "calibrate", "프로필 보정" | Evidence 기반 프로필 조정. 한 번에 최대 2개 축. 임계값: 같은 방향 3건+ |
|
|
234
|
+
|
|
235
|
+
**독립 스킬**:
|
|
236
|
+
|
|
237
|
+
| 스킬 | 트리거 | 기능 |
|
|
238
|
+
|------|--------|------|
|
|
239
|
+
| `ship` | "ship", "배포" | 15단계 파이프라인. "Never ask, just do" 철학. Review Readiness Dashboard + Verification Gate |
|
|
240
|
+
| `code-review` | "code review", "리뷰" | 신뢰도 1-10 보정, Critical 5개 카테고리 (SQL/race/LLM trust/secrets/enum), auto-fix |
|
|
241
|
+
| `architecture-decision` | "adr" | 가중 트레이드오프 매트릭스, ADR 라이프사이클, 가역성 분류 |
|
|
242
|
+
| `docker` | "docker", "컨테이너" | 멀티스테이지 빌드, 보안 강화, 10개 failure modes |
|
|
243
|
+
|
|
244
|
+
### 세션 관리
|
|
245
|
+
|
|
246
|
+
| 기능 | 동작 |
|
|
247
|
+
|------|------|
|
|
248
|
+
| **세션 브리프** | 컨텍스트 압축 전 구조화된 브리프 저장 → 다음 세션에서 복원 |
|
|
249
|
+
| **drift 감지** | EWMA 기반 편집 속도 추적 → 15회 편집 시 경고, 30회 위험, 50회 강제 정지 |
|
|
250
|
+
| **에이전트 출력 검증** | Claude가 서브 에이전트를 실행할 때 출력 품질 자동 검증 |
|
|
251
|
+
| **자동 압축** | 누적 12만 자 초과 시 Claude에게 컨텍스트 압축 지시 |
|
|
252
|
+
| **pending compound** | 20회 이상 프롬프트 세션 후 다음 세션에서 compound 추출 자동 트리거 |
|
|
193
253
|
|
|
194
254
|
---
|
|
195
255
|
|
|
@@ -337,6 +397,12 @@ forgen me # 개인 대시보드 (inspect profile 단축키
|
|
|
337
397
|
```bash
|
|
338
398
|
forgen compound # 축적된 지식 미리보기
|
|
339
399
|
forgen compound --save # 자동 분석된 패턴 저장
|
|
400
|
+
forgen compound list # 상태가 포함된 솔루션 전체 목록
|
|
401
|
+
forgen compound inspect <이름> # 솔루션 전체 내용 확인
|
|
402
|
+
forgen compound --lifecycle # 승격/강등 검사 실행
|
|
403
|
+
forgen compound --verify <이름> # 수동으로 verified 승격
|
|
404
|
+
forgen compound export # 지식을 tar.gz로 내보내기
|
|
405
|
+
forgen compound import <경로> # 지식 아카이브 가져오기
|
|
340
406
|
forgen skill promote <이름> # 검증된 솔루션을 스킬로 승격
|
|
341
407
|
forgen skill list # 승격된 스킬 목록
|
|
342
408
|
```
|
|
@@ -345,10 +411,14 @@ forgen skill list # 승격된 스킬 목록
|
|
|
345
411
|
|
|
346
412
|
```bash
|
|
347
413
|
forgen init # 프로젝트 초기화
|
|
348
|
-
forgen doctor # 시스템 진단
|
|
349
|
-
forgen
|
|
414
|
+
forgen doctor # 시스템 진단 (10개 항목 + 하네스 성숙도)
|
|
415
|
+
forgen dashboard # 지식 현황 대시보드 (6개 섹션)
|
|
416
|
+
forgen config hooks # 훅 상태 + 컨텍스트 예산 확인
|
|
350
417
|
forgen config hooks --regenerate # 훅 재생성
|
|
351
|
-
forgen mcp
|
|
418
|
+
forgen mcp list # 설치된 MCP 서버 목록
|
|
419
|
+
forgen mcp add <이름> # 템플릿에서 MCP 서버 추가
|
|
420
|
+
forgen mcp templates # 사용 가능한 템플릿 목록
|
|
421
|
+
forgen notepad show # 세션 노트패드 보기
|
|
352
422
|
forgen uninstall # forgen 깔끔하게 제거
|
|
353
423
|
```
|
|
354
424
|
|
|
@@ -356,12 +426,14 @@ forgen uninstall # forgen 깔끔하게 제거
|
|
|
356
426
|
|
|
357
427
|
| 도구 | 용도 |
|
|
358
428
|
|------|------|
|
|
359
|
-
| `compound-search` | 축적된 지식을 쿼리로 검색 |
|
|
360
|
-
| `compound-read` | 솔루션 전문 읽기 |
|
|
361
|
-
| `compound-list` | 필터가 있는 솔루션 목록 |
|
|
362
|
-
| `compound-stats` | 통계
|
|
429
|
+
| `compound-search` | 축적된 지식을 쿼리로 검색 (TF-IDF + BM25 + bigram 앙상블) |
|
|
430
|
+
| `compound-read` | 솔루션 전문 읽기 (Progressive Disclosure Tier 3) |
|
|
431
|
+
| `compound-list` | 상태/유형/범위 필터가 있는 솔루션 목록 |
|
|
432
|
+
| `compound-stats` | 상태, 유형, 범위별 통계 현황 |
|
|
363
433
|
| `session-search` | 이전 세션 대화 검색 (SQLite FTS5, Node.js 22+) |
|
|
364
434
|
| `correction-record` | 사용자 교정을 구조화된 evidence로 기록 |
|
|
435
|
+
| `profile-read` | 현재 개인화 프로필 읽기 |
|
|
436
|
+
| `rule-list` | 카테고리별 활성 개인화 규칙 목록 |
|
|
365
437
|
|
|
366
438
|
---
|
|
367
439
|
|
|
@@ -431,10 +503,12 @@ rule-renderer.ts Rule[]을 자연어로 변환:
|
|
|
431
503
|
| **pre-tool-use** | 모든 도구 실행 전 | `rm -rf`, `curl\|sh`, `--force` push, 위험 패턴 차단 |
|
|
432
504
|
| **db-guard** | SQL 연산 | `DROP TABLE`, `WHERE` 없는 `DELETE`, `TRUNCATE` 차단 |
|
|
433
505
|
| **secret-filter** | 파일 쓰기, 출력 | API 키, 토큰, 자격 증명 노출 시 경고 |
|
|
434
|
-
| **slop-detector** | 코드 생성 후 | TODO 잔재, `eslint-disable`, `as any`, `@ts-ignore
|
|
506
|
+
| **slop-detector** | 코드 생성 후 | TODO 잔재, `eslint-disable`, `as any`, `@ts-ignore`, 빈 catch 감지 |
|
|
435
507
|
| **prompt-injection-filter** | 모든 입력 | 패턴 + 휴리스틱 기반 프롬프트 인젝션 차단 |
|
|
436
|
-
| **context-guard** | 세션 중 |
|
|
508
|
+
| **context-guard** | 세션 중 | 50 프롬프트/20만 자 시 경고, 12만 자 자동 압축, 세션 인계 |
|
|
437
509
|
| **rate-limiter** | MCP 도구 호출 | 과도한 MCP 도구 호출 방지 |
|
|
510
|
+
| **drift-detector** | 파일 편집 | EWMA 기반 drift 점수: 경고 → 위험 → 50회 편집 시 강제 정지 |
|
|
511
|
+
| **agent-validator** | 에이전트 도구 출력 | 서브 에이전트 출력이 비어있거나 실패/잘린 경우 경고 |
|
|
438
512
|
|
|
439
513
|
안전 규칙은 **hard constraint**입니다 -- 팩 선택이나 교정으로 재정의할 수 없습니다. 렌더링된 규칙의 "Must Not" 섹션은 프로필과 무관하게 항상 존재합니다.
|
|
440
514
|
|
|
@@ -460,7 +534,19 @@ rule-renderer.ts Rule[]을 자연어로 변환:
|
|
|
460
534
|
|
|
461
535
|
## 공존
|
|
462
536
|
|
|
463
|
-
forgen는 설치 시 다른 Claude Code 플러그인(oh-my-claudecode, superpowers, claude-mem)을 감지하고
|
|
537
|
+
forgen는 설치 시 다른 Claude Code 플러그인(oh-my-claudecode, superpowers, claude-mem)을 감지하고 컨텍스트 주입을 50% 자동 축소합니다 (양보 원칙). 핵심 안전 훅과 compound 훅은 항상 활성 상태를 유지합니다. 다른 플러그인이 이미 제공하는 스킬은 충돌을 피하기 위해 건너뜁니다.
|
|
538
|
+
|
|
539
|
+
자세한 내용은 [공존 가이드](docs/guides/with-omc.md)를 참고하세요.
|
|
540
|
+
|
|
541
|
+
---
|
|
542
|
+
|
|
543
|
+
## 문서
|
|
544
|
+
|
|
545
|
+
| 문서 | 설명 |
|
|
546
|
+
|------|------|
|
|
547
|
+
| [훅 레퍼런스](docs/reference/hooks-reference.md) | 3개 계층의 19개 훅 — 이벤트, 타임아웃, 동작 |
|
|
548
|
+
| [공존 가이드](docs/guides/with-omc.md) | oh-my-claudecode와 forgen 함께 사용하기 |
|
|
549
|
+
| [CHANGELOG](CHANGELOG.md) | 버전 히스토리 및 릴리즈 노트 |
|
|
464
550
|
|
|
465
551
|
---
|
|
466
552
|
|
package/README.md
CHANGED
|
@@ -57,7 +57,7 @@ Forgen makes this happen. It profiles your work style, learns from your correcti
|
|
|
57
57
|
### First run (one time, ~1 minute)
|
|
58
58
|
|
|
59
59
|
```bash
|
|
60
|
-
npm install -g /forgen
|
|
60
|
+
npm install -g @wooojin/forgen
|
|
61
61
|
forgen
|
|
62
62
|
```
|
|
63
63
|
|
|
@@ -116,8 +116,8 @@ Updated rules are rendered with your corrections included. Compound knowledge is
|
|
|
116
116
|
## Quick Start
|
|
117
117
|
|
|
118
118
|
```bash
|
|
119
|
-
# 1. Install
|
|
120
|
-
npm install -g /forgen
|
|
119
|
+
# 1. Install (MUST use -g — forgen is a global CLI)
|
|
120
|
+
npm install -g @wooojin/forgen
|
|
121
121
|
|
|
122
122
|
# 2. First run — 4-question onboarding (English or Korean)
|
|
123
123
|
forgen
|
|
@@ -182,14 +182,107 @@ forgen
|
|
|
182
182
|
|
|
183
183
|
### Compound knowledge
|
|
184
184
|
|
|
185
|
-
Knowledge accumulates across sessions
|
|
185
|
+
Knowledge accumulates across sessions with a trust-based lifecycle:
|
|
186
|
+
|
|
187
|
+
```
|
|
188
|
+
experiment (0.30) → candidate (0.55) → verified (0.75) → mature (0.90)
|
|
189
|
+
```
|
|
190
|
+
|
|
191
|
+
Each solution starts as an `experiment`. As it gets reflected in your code across sessions, it's automatically promoted. Negative evidence triggers a circuit breaker (auto-retire). This means only patterns that actually work for you survive.
|
|
186
192
|
|
|
187
193
|
| Type | Source | How Claude uses it |
|
|
188
194
|
|------|--------|--------------------|
|
|
189
|
-
| **Solutions** | Extracted from sessions |
|
|
190
|
-
| **Skills** |
|
|
195
|
+
| **Solutions** | Extracted from sessions | Auto-injected when relevant to your prompt (TF-IDF + BM25 + bigram ensemble) |
|
|
196
|
+
| **Skills** | 10 built-in + promoted from verified solutions | Activated by keyword (`deep-interview`, `forge-loop`, `ship`, etc.) |
|
|
191
197
|
| **Behavioral patterns** | Auto-detected at 3+ observations | Applied to `forge-behavioral.md` |
|
|
192
|
-
| **Evidence** | Corrections + observations | Drives facet adjustments |
|
|
198
|
+
| **Evidence** | Corrections + observations | Drives facet adjustments + rule creation |
|
|
199
|
+
|
|
200
|
+
### Solution auto-injection
|
|
201
|
+
|
|
202
|
+
Every prompt you type is matched against your accumulated solutions. Relevant ones are automatically injected into Claude's context — no manual lookup needed.
|
|
203
|
+
|
|
204
|
+
```
|
|
205
|
+
You type: "fix the error handling in the API"
|
|
206
|
+
↓
|
|
207
|
+
solution-injector matches: starter-error-handling-patterns (0.70)
|
|
208
|
+
↓
|
|
209
|
+
Claude sees: "Matched solutions: error-handling-patterns [pattern|0.70]
|
|
210
|
+
Use try/catch with specific error types. Always log original error..."
|
|
211
|
+
↓
|
|
212
|
+
Claude writes better error handling code, informed by your accumulated patterns.
|
|
213
|
+
```
|
|
214
|
+
|
|
215
|
+
### 10 built-in skills
|
|
216
|
+
|
|
217
|
+
Curated, compound-native skills. Each one integrates with accumulated knowledge — they get better every session.
|
|
218
|
+
|
|
219
|
+
**Core chain** (build → learn):
|
|
220
|
+
|
|
221
|
+
| Skill | Trigger | What it does |
|
|
222
|
+
|-------|---------|-------------|
|
|
223
|
+
| `deep-interview` | "deep-interview", "딥인터뷰" | Weighted 4-dimension ambiguity scoring, 3 challenge modes (Contrarian/Simplifier/Ontologist), ontology tracking |
|
|
224
|
+
| `forge-loop` | "forge-loop", "끝까지" | PRD-based iteration loop. Stop hook prevents polite-stop. Verifier enforcement with fresh evidence |
|
|
225
|
+
| `compound` | "복리화", "compound" | Extract reusable patterns with 5-Question quality filter. Health dashboard included |
|
|
226
|
+
|
|
227
|
+
**Management chain** (review → tune):
|
|
228
|
+
|
|
229
|
+
| Skill | Trigger | What it does |
|
|
230
|
+
|-------|---------|-------------|
|
|
231
|
+
| `retro` | "retro", "회고" | Weekly retrospective: git analysis + compound health + learning trend + 3 recommendations |
|
|
232
|
+
| `learn` | "learn prune", "compound 정리" | 5 subcommands: search/stats/prune/export/import. Stale & duplicate detection |
|
|
233
|
+
| `calibrate` | "calibrate", "프로필 보정" | Evidence-based profile adjustment. Max 2 axes per calibration. Threshold: 3+ corrections in same direction |
|
|
234
|
+
|
|
235
|
+
**Independent skills**:
|
|
236
|
+
|
|
237
|
+
| Skill | Trigger | What it does |
|
|
238
|
+
|-------|---------|-------------|
|
|
239
|
+
| `ship` | "ship", "배포" | 15-step pipeline. "Never ask, just do" philosophy. Review Readiness Dashboard + Verification Gate |
|
|
240
|
+
| `code-review` | "code review", "리뷰" | Confidence 1-10 calibration, Critical 5 categories (SQL/race/LLM trust/secrets/enum), auto-fix |
|
|
241
|
+
| `architecture-decision` | "adr" | Weighted trade-off matrix, ADR lifecycle, reversibility classification |
|
|
242
|
+
| `docker` | "docker", "컨테이너" | Multi-stage builds, security hardening, 10 failure modes
|
|
243
|
+
|
|
244
|
+
### 12 built-in agents
|
|
245
|
+
|
|
246
|
+
Sub-agents with physically separated tool access, `Failure_Modes_To_Avoid` sections, and Good/Bad examples. Invoked via `Agent(subagent_type: "ch-<name>")`. The `ch-` prefix avoids collisions with OMC / built-in Claude Code agents.
|
|
247
|
+
|
|
248
|
+
**Read-only (investigation / review):**
|
|
249
|
+
|
|
250
|
+
| Agent | Model | Role |
|
|
251
|
+
|-------|:-----:|------|
|
|
252
|
+
| `ch-explore` | Haiku | Fast codebase explorer — file/pattern search, structure mapping |
|
|
253
|
+
| `ch-analyst` | Opus | Requirements analyst — uncovers hidden constraints via Socratic inquiry |
|
|
254
|
+
| `ch-architect` | Opus | Strategic architecture advisor |
|
|
255
|
+
| `ch-code-reviewer` | Opus | Unified reviewer — quality + security (OWASP) + performance (absorbs former `security-reviewer` / `performance-reviewer`) |
|
|
256
|
+
| `ch-critic` | Opus | Final quality gate — plan/code verifier |
|
|
257
|
+
|
|
258
|
+
**Plan-only:**
|
|
259
|
+
|
|
260
|
+
| Agent | Model | Role |
|
|
261
|
+
|-------|:-----:|------|
|
|
262
|
+
| `ch-planner` | Opus | Strategic planning — decomposes tasks, identifies risks, creates actionable plans |
|
|
263
|
+
|
|
264
|
+
**Write-enabled (implementation / verification):**
|
|
265
|
+
|
|
266
|
+
| Agent | Model | Role |
|
|
267
|
+
|-------|:-----:|------|
|
|
268
|
+
| `ch-executor` | Sonnet | Code implementation — compound-aware, absorbs refactoring & simplification |
|
|
269
|
+
| `ch-debugger` | Sonnet | Root-cause debugger — isolates regressions, analyzes stack traces |
|
|
270
|
+
| `ch-test-engineer` | Sonnet | Test strategist — integration/E2E coverage, TDD, flaky-test hardening |
|
|
271
|
+
| `ch-designer` | Sonnet | UI/UX — component architecture, accessibility, responsive design |
|
|
272
|
+
| `ch-git-master` | Sonnet | Git workflows — atomic commits, rebasing, history management (Bash limited to git) |
|
|
273
|
+
| `ch-verifier` | Sonnet | Completion verifier — evidence collection, test adequacy, manual test scenarios (compound-aware) |
|
|
274
|
+
|
|
275
|
+
> Absorbed in this redesign: `security-reviewer` / `performance-reviewer` → `ch-code-reviewer`, `refactoring-expert` / `code-simplifier` → `ch-executor`, `qa-tester` → `ch-verifier`, `scientist` / `writer` removed.
|
|
276
|
+
|
|
277
|
+
### Session management
|
|
278
|
+
|
|
279
|
+
| Feature | What happens |
|
|
280
|
+
|---------|-------------|
|
|
281
|
+
| **Session brief** | Before context compaction, a structured brief is saved and restored in the next session |
|
|
282
|
+
| **Drift detection** | EWMA-based edit rate tracking → warning at 15 edits, critical at 30, hard stop at 50 |
|
|
283
|
+
| **Agent output validation** | When Claude spawns sub-agents, their output quality is automatically verified |
|
|
284
|
+
| **Auto-compact** | At 120K chars accumulated, Claude is instructed to compact context |
|
|
285
|
+
| **Pending compound** | After 20+ prompt sessions, a compound extraction is auto-triggered next session |
|
|
193
286
|
|
|
194
287
|
---
|
|
195
288
|
|
|
@@ -337,6 +430,12 @@ forgen me # Personal dashboard (shortcut for inspect profi
|
|
|
337
430
|
```bash
|
|
338
431
|
forgen compound # Preview accumulated knowledge
|
|
339
432
|
forgen compound --save # Save auto-analyzed patterns
|
|
433
|
+
forgen compound list # List all solutions with status
|
|
434
|
+
forgen compound inspect <name> # Show full solution details
|
|
435
|
+
forgen compound --lifecycle # Run promotion/demotion check
|
|
436
|
+
forgen compound --verify <name> # Manually promote to verified
|
|
437
|
+
forgen compound export # Export knowledge as tar.gz
|
|
438
|
+
forgen compound import <path> # Import knowledge archive
|
|
340
439
|
forgen skill promote <name> # Promote a verified solution to a skill
|
|
341
440
|
forgen skill list # List promoted skills
|
|
342
441
|
```
|
|
@@ -345,10 +444,14 @@ forgen skill list # List promoted skills
|
|
|
345
444
|
|
|
346
445
|
```bash
|
|
347
446
|
forgen init # Initialize project
|
|
348
|
-
forgen doctor # System diagnostics
|
|
349
|
-
forgen
|
|
447
|
+
forgen doctor # System diagnostics (10 categories + harness maturity)
|
|
448
|
+
forgen dashboard # Knowledge overview (6 sections)
|
|
449
|
+
forgen config hooks # View hook status + context budget
|
|
350
450
|
forgen config hooks --regenerate # Regenerate hooks
|
|
351
|
-
forgen mcp
|
|
451
|
+
forgen mcp list # List installed MCP servers
|
|
452
|
+
forgen mcp add <name> # Add MCP server from template
|
|
453
|
+
forgen mcp templates # Show available templates
|
|
454
|
+
forgen notepad show # View session notepad
|
|
352
455
|
forgen uninstall # Remove forgen cleanly
|
|
353
456
|
```
|
|
354
457
|
|
|
@@ -356,12 +459,14 @@ forgen uninstall # Remove forgen cleanly
|
|
|
356
459
|
|
|
357
460
|
| Tool | Purpose |
|
|
358
461
|
|------|---------|
|
|
359
|
-
| `compound-search` | Search accumulated knowledge by query |
|
|
360
|
-
| `compound-read` | Read full solution content |
|
|
361
|
-
| `compound-list` | List solutions with filters |
|
|
362
|
-
| `compound-stats` | Overview statistics |
|
|
462
|
+
| `compound-search` | Search accumulated knowledge by query (TF-IDF + BM25 + bigram ensemble) |
|
|
463
|
+
| `compound-read` | Read full solution content (Progressive Disclosure Tier 3) |
|
|
464
|
+
| `compound-list` | List solutions with status/type/scope filters |
|
|
465
|
+
| `compound-stats` | Overview statistics by status, type, scope |
|
|
363
466
|
| `session-search` | Search past session conversations (SQLite FTS5, Node.js 22+) |
|
|
364
467
|
| `correction-record` | Record user corrections as structured evidence |
|
|
468
|
+
| `profile-read` | Read current personalization profile |
|
|
469
|
+
| `rule-list` | List active personalization rules by category |
|
|
365
470
|
|
|
366
471
|
---
|
|
367
472
|
|
|
@@ -433,10 +538,12 @@ Safety hooks are automatically registered in `settings.json` and run on every to
|
|
|
433
538
|
| **pre-tool-use** | Before any tool execution | Blocks `rm -rf`, `curl\|sh`, `--force` push, dangerous patterns |
|
|
434
539
|
| **db-guard** | SQL operations | Blocks `DROP TABLE`, `WHERE`-less `DELETE`, `TRUNCATE` |
|
|
435
540
|
| **secret-filter** | File writes and outputs | Warns when API keys, tokens, or credentials are about to be exposed |
|
|
436
|
-
| **slop-detector** | After code generation | Detects TODO remnants, `eslint-disable`, `as any`, `@ts-ignore
|
|
541
|
+
| **slop-detector** | After code generation | Detects TODO remnants, `eslint-disable`, `as any`, `@ts-ignore`, empty catch |
|
|
437
542
|
| **prompt-injection-filter** | All inputs | Blocks prompt injection attempts with pattern + heuristic detection |
|
|
438
|
-
| **context-guard** | During session | Warns
|
|
543
|
+
| **context-guard** | During session | Warns at 50 prompts/200K chars, auto-compact at 120K, session handoff |
|
|
439
544
|
| **rate-limiter** | MCP tool calls | Prevents excessive MCP tool invocations |
|
|
545
|
+
| **drift-detector** | File edits | EWMA-based drift score: warning → critical → hard stop at 50 edits |
|
|
546
|
+
| **agent-validator** | Agent tool output | Warns on empty/failed/truncated sub-agent output |
|
|
440
547
|
|
|
441
548
|
Safety rules are **hard constraints** -- they cannot be overridden by pack selection or corrections. The "Must Not" section in rendered rules is always present regardless of profile.
|
|
442
549
|
|
|
@@ -462,7 +569,7 @@ Safety rules are **hard constraints** -- they cannot be overridden by pack selec
|
|
|
462
569
|
|
|
463
570
|
## Coexistence
|
|
464
571
|
|
|
465
|
-
Forgen detects other Claude Code plugins (oh-my-claudecode, superpowers, claude-mem) at install time and
|
|
572
|
+
Forgen detects other Claude Code plugins (oh-my-claudecode, superpowers, claude-mem) at install time and automatically reduces its context injection by 50% ("yielding principle"). Core safety and compound hooks always remain active. Conflicting skills are skipped when another plugin already provides them.
|
|
466
573
|
|
|
467
574
|
See [Coexistence Guide](docs/guides/with-omc.md) for details.
|
|
468
575
|
|