jhste-skills 0.1.3 → 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 (87) hide show
  1. package/CHANGELOG.md +27 -0
  2. package/README.ja.md +35 -25
  3. package/README.ko.md +34 -24
  4. package/README.md +34 -24
  5. package/README.zh.md +35 -25
  6. package/adapters/codex/README.md +5 -1
  7. package/cli/baseline.mjs +52 -3
  8. package/cli/deep-scan/analyze.mjs +6 -2
  9. package/cli/deep-scan/report.mjs +11 -3
  10. package/cli/deep-scan.mjs +11 -0
  11. package/cli/guard/registry.mjs +2 -0
  12. package/cli/guard/reporting.mjs +52 -61
  13. package/cli/guard/scanners/code-health.mjs +4 -4
  14. package/cli/guard/scanners/data-boundary.mjs +1 -1
  15. package/cli/guard/scanners/index.mjs +3 -0
  16. package/cli/guard/scanners/single-responsibility.mjs +2 -2
  17. package/cli/guard/scanners/solid-design.mjs +98 -0
  18. package/cli/guard/scanners/ui-runtime.mjs +1 -1
  19. package/cli/install-actions/apply-plan.mjs +5 -1
  20. package/cli/install-actions/output.mjs +4 -1
  21. package/cli/install-actions/preflight.mjs +6 -1
  22. package/cli/install-actions/profile-writer.mjs +24 -4
  23. package/cli/install-actions/skills.mjs +1 -0
  24. package/cli/install-flow/options.mjs +7 -1
  25. package/cli/install-flow/output.mjs +1 -1
  26. package/cli/install-flow/plan.mjs +43 -51
  27. package/cli/profile/parser.mjs +8 -5
  28. package/cli/profile/schema.mjs +5 -3
  29. package/cli/profile/validator.mjs +0 -3
  30. package/cli/shared/generated-profile.mjs +29 -0
  31. package/cli/shared/templates.mjs +9 -6
  32. package/cli/shared.mjs +1 -0
  33. package/cli/sync-core.mjs +28 -9
  34. package/cli/uninstall.mjs +3 -14
  35. package/docs/ACCEPTANCE_CHECK.md +4 -4
  36. package/docs/CLI.md +13 -10
  37. package/docs/CONFLICT_RESOLUTION.md +7 -3
  38. package/docs/RULES.md +18 -5
  39. package/examples/profile.yaml +4 -5
  40. package/package.json +5 -3
  41. package/packs/core.yaml +4 -0
  42. package/rules/core/dependency_boundary_advisory.yaml +27 -0
  43. package/rules/core/extension_seam_advisory.yaml +27 -0
  44. package/rules/core/interface_segregation_advisory.yaml +25 -0
  45. package/rules/core/responsibility_budget.yaml +1 -1
  46. package/rules/core/single_responsibility_advisory.yaml +1 -1
  47. package/rules/core/substitutability_advisory.yaml +25 -0
  48. package/scripts/docs-check-data.mjs +9 -3
  49. package/scripts/docs-check.mjs +4 -4
  50. package/scripts/profile-fixtures-test.mjs +88 -1
  51. package/scripts/release-gates-test.mjs +7 -1
  52. package/scripts/smoke/helpers.mjs +29 -0
  53. package/scripts/smoke/install-scenarios.mjs +13 -27
  54. package/scripts/smoke/profile-overwrite-scenarios.mjs +136 -0
  55. package/scripts/solid-design-fixtures-test.mjs +102 -0
  56. package/skills/codebase-design/DEEPENING.md +8 -8
  57. package/skills/codebase-design/DESIGN-IT-TWICE.md +5 -5
  58. package/skills/codebase-design/SKILL.md +20 -16
  59. package/skills/diagnosing-bugs/SKILL.md +10 -10
  60. package/skills/domain-modeling/SKILL.md +7 -3
  61. package/skills/grill-me/SKILL.md +3 -3
  62. package/skills/grill-with-docs/SKILL.md +6 -4
  63. package/skills/grilling/SKILL.md +3 -3
  64. package/skills/handoff/SKILL.md +5 -3
  65. package/skills/improve-codebase-architecture/DEEPENING.md +8 -8
  66. package/skills/improve-codebase-architecture/HTML-REPORT.md +7 -7
  67. package/skills/improve-codebase-architecture/INTERFACE-DESIGN.md +5 -5
  68. package/skills/improve-codebase-architecture/LANGUAGE.md +12 -12
  69. package/skills/improve-codebase-architecture/SKILL.md +14 -10
  70. package/skills/jhste-architecture-review/SKILL.md +13 -5
  71. package/skills/jhste-architecture-review/references/architecture-review.md +42 -6
  72. package/skills/jhste-code-quality/SKILL.md +11 -5
  73. package/skills/jhste-code-quality/references/code-quality.md +9 -4
  74. package/skills/jhste-crawler-automation/SKILL.md +4 -4
  75. package/skills/jhste-db-api-boundary/SKILL.md +2 -2
  76. package/skills/jhste-db-api-boundary/references/db-api-boundary.md +3 -3
  77. package/skills/{jhste-engineering-judgment → jhste-engineering-groundwork}/SKILL.md +17 -15
  78. package/skills/{jhste-engineering-judgment → jhste-engineering-groundwork}/references/structure-templates.md +3 -3
  79. package/skills/jhste-red-team-review/SKILL.md +9 -6
  80. package/skills/jhste-red-team-review/references/red-team-review.md +10 -5
  81. package/skills/prototype/SKILL.md +5 -3
  82. package/skills/setup/SKILL.md +1 -1
  83. package/skills/setup/references/conflict-policy.md +1 -1
  84. package/skills/to-issues/SKILL.md +10 -13
  85. package/skills/to-prd/SKILL.md +10 -6
  86. package/skills/triage/SKILL.md +9 -3
  87. package/skills/write-a-skill/SKILL.md +2 -2
package/CHANGELOG.md ADDED
@@ -0,0 +1,27 @@
1
+ # Changelog
2
+
3
+ ## 0.3.0 - 2026-06-24
4
+
5
+ ### Added
6
+ - Added repo-local agent autonomy and standing approval guidance for routine reversible work, tracker/doc workflows, prototypes, handoffs, and bounded review follow-up.
7
+ - Added shared generated-profile detection with legacy generated profile support, including legacy profiles that still contain `guard.exit_codes`.
8
+ - Added `--allow-profile-overwrite` for explicit modified profile replacement when used with `--force`.
9
+ - Added smoke and fixture coverage for profile overwrite safety, legacy generated profiles, deep-scan validation, baseline path handling, legacy guard exit-code no-op handling, and managed skill rename migration.
10
+
11
+ ### Changed
12
+ - Renamed `jhste-engineering-judgment` to `jhste-engineering-groundwork`; managed `sync`/`update` migrate the old managed skill name automatically.
13
+ - Replaced general user-facing “seam” language with “boundary” while preserving stable rule/profile ids such as `extension_seam_advisory` for compatibility.
14
+ - Updated skill descriptions and bodies for grilling, PRD/issues, prototype, handoff, triage, domain modeling, codebase design, architecture review, code quality, groundwork, and red-team review triggers/side-effect policy.
15
+ - Refactored install/connect preset planning to table-driven plan factories so the previous OCP advisory warning is no longer emitted.
16
+
17
+ ### Fixed
18
+ - `install --force` no longer overwrites modified/custom `.jhste/profile.yaml` unless `--allow-profile-overwrite` is also supplied.
19
+ - `connect`, `sync`, and `update` now share the same profile overwrite safety policy.
20
+ - New generated/example profiles no longer advertise unsupported `guard.exit_codes`; existing profile `guard.exit_codes` blocks are accepted as legacy no-op configuration.
21
+ - `deep-scan` now validates `.jhste/profile.yaml` and exits with config failure before writing reports when the profile is invalid.
22
+ - `baseline` now validates profile configuration and shows/uses the effective baseline path from CLI args, profile, or the default consistently.
23
+
24
+ ### Validation
25
+ - `npm test` passed.
26
+ - `jhste-skills guard --scope changed --format text --fail-on error` passed with 0 warnings/errors.
27
+ - `git diff --check` passed.
package/README.ja.md CHANGED
@@ -4,11 +4,21 @@ Languages: [English](README.md) · [한국어](README.ko.md) · [中文](README.
4
4
 
5
5
  AI コーディングエージェントが、あなたの定義したエンジニアリング基準を一貫して守るための、インストール可能な作業ルールキットです。
6
6
 
7
- `jhste-skills` は Codex、Claude Code などの AI コーディングエージェントに、共通のエンジニアリング作業フローを提供します。コードを変更する前に前提を検証し、リポジトリ内の既存指示を優先し、API/database/automation の境界を明確に保ち、各モジュールが SRP(Single Responsibility Principle、単一責任原則)に沿って 1 つの明確な責任を持つかを確認し、changed-file guard を実行し、完了を宣言する前に red-team code review を行うよう支援します。
7
+ `jhste-skills` は Codex、Claude Code などの AI コーディングエージェントに、共通のエンジニアリング作業フローを提供します。コードを変更する前に前提を検証し、リポジトリ内の既存指示を優先し、API/database/automation の境界を明確に保ち、SOLID-informed coding discipline design review lens を適用し、changed-file guard を実行し、完了を宣言する前に red-team code review を行うよう支援します。guard finding は自動的な SOLID 証明ではなく review candidate です。
8
+
9
+ ## ここでの SOLID の意味
10
+
11
+ ここでの SOLID は、自動 compliance チェックリストではなく、設計レビューのレンズです。
12
+
13
+ - **S — Single Responsibility:** 変更された function、module、class は、1 つの主な役割と 1 つの主な変更理由を持つべきです。
14
+ - **O — Open/Closed:** 新しい variant、provider、policy を追加するたびに core branching を何度も編集するなら、実際の extension boundary が必要かを確認します。
15
+ - **L — Liskov Substitution:** 実装は return shape、nullability、error、side effect、文書化された behavior に関する caller の期待を弱めてはいけません。
16
+ - **I — Interface Segregation:** caller が小さく安定した一部だけを必要とするのに、大きな config、interface、props object に依存しないようにします。
17
+ - **D — Dependency Inversion:** high-level policy が DB、API、browser、filesystem、email、payment、queue などの concrete side effect に強く結びつかないようにし、必要な場合は意図的で見える boundary にします。
8
18
 
9
19
  このツールはプロジェクトを乗っ取りません。リポジトリ内の `AGENTS.md`、`CLAUDE.md`、docs が常に権威です。デフォルト設定は advisory モードで、marker-managed 方式で管理され、低リスクで試せるように設計されています。
10
20
 
11
- Skills は、必要な状況でエージェントが自動的に使うことを想定しています。たとえば API コードを変更する場合は API/database boundary skill を、完了直前には red-team review skill を使うよう促します。ユーザーが明示的に skill を呼び出すこともできます。例: `use jhste-engineering-judgment to review this change premise`、`run jhste-red-team-review on this diff`。
21
+ Skills は、必要な状況でエージェントが自動的に使うことを想定しています。たとえば API コードを変更する場合は API/database boundary skill を、完了直前には red-team review skill を使うよう促します。ユーザーが明示的に skill を呼び出すこともできます。例: `use jhste-engineering-groundwork to review this change premise`、`run jhste-red-team-review on this diff`。
12
22
 
13
23
  ## なぜインストールするのか?
14
24
 
@@ -16,7 +26,7 @@ AI コーディングエージェントは高速ですが、失敗パターン
16
26
 
17
27
  - 不明確な要求や誤った前提を黙って受け入れます。
18
28
  - 役に立とうとして作業範囲を広げすぎます。
19
- - UI、route/controller、service、database、side effect の責任を 1 か所に混ぜ込み、「1 モジュール、1 責任」の原則(SRP)を壊します。
29
+ - UI、route/controller、service、database、side effect の責任を 1 か所に混ぜ込んだり、実際の boundary がない抽象化を SOLID 名目で追加したりします。
20
30
  - 失敗を隠したり、安全でないログを出したりします。
21
31
  - 変更コードを十分確認する前に「完了」と言います。
22
32
  - マシンやリポジトリを切り替えるたびに、リポジトリ固有のルールを忘れます。
@@ -25,7 +35,7 @@ AI コーディングエージェントは高速ですが、失敗パターン
25
35
 
26
36
  ```text
27
37
  non-trivial code change の前:
28
- goal、premise、ownership seam、data contract、failure path、SRP responsibility を確認
38
+ goal、premise、ownership boundary、data contract、failure path、SOLID-informed review lens を確認
29
39
 
30
40
  編集中:
31
41
  repo-local instructions を権威として扱う
@@ -40,7 +50,7 @@ warning が出た場合:
40
50
  bounded fix を試し、再確認し、無限ループせず停止する
41
51
  ```
42
52
 
43
- 期待される結果は、より小さな diff、より明確な SRP 境界、より安全な API/database コード、より少ない silent assumption、より誠実な完了報告です。
53
+ 期待される結果は、より小さな diff、より明確な SOLID-informed boundary、より安全な API/database コード、より少ない silent assumption、より誠実な完了報告です。
44
54
 
45
55
  ## 誰がインストールすべきか?
46
56
 
@@ -50,7 +60,7 @@ warning が出た場合:
50
60
  - non-trivial code change の前に、エージェントに前提を検証してほしい。
51
61
  - 既存の repo docs を引き続き権威として扱いたい。
52
62
  - commit 前、または完了宣言前に軽量な advisory check を置きたい。
53
- - SRP、API/database boundary、safe logging、input validation、side effect、automation reliability を重視している。
63
+ - SOLID-informed coding discipline、API/database boundary、safe logging、input validation、side effect、automation reliability を重視している。
54
64
  - マシンやリポジトリを移っても、同じ AI 作業習慣を素早く復元したい。
55
65
 
56
66
  逆に、単一の prompt ファイルだけが欲しい場合、インストール直後から strict CI enforcement を期待する場合、`.jhste/` ファイルや bridge block を生成したくない場合、このツールに自動リファクタリングを期待している場合は、適さないかもしれません。
@@ -73,7 +83,7 @@ jhste-skills install
73
83
  デフォルトインストールは Normal mode を使います。
74
84
 
75
85
  - bundled skills 全体をインストールします: jhste core skills + vendored workflow skills。
76
- - `.jhste/profile.yaml` がなければ作成します。
86
+ - `.jhste/profile.yaml` がなければ作成します。`--force` は generated/managed profile だけを refresh し、modified profile の overwrite には `--force --allow-profile-overwrite` が必要です。
77
87
  - project guidance が有効な場合、`AGENTS.md` または `CLAUDE.md` に marker-managed bridge block を追加または更新します。
78
88
  - 安全な場合、advisory pre-commit hook をインストールします。
79
89
  - CI、対象 `package.json`、lockfile、source code は変更しません。
@@ -109,7 +119,7 @@ managed outputs を削除するには:
109
119
  jhste-skills uninstall --yes --repo /path/to/repo
110
120
  ```
111
121
 
112
- `uninstall` は managed hook、marker-managed bridge block、manifest-managed skill directory を削除します。non-managed file には触れません。`.jhste/profile.yaml` は generated shape のままの場合のみ削除されます。変更済み profile を削除する場合は、内容を確認してから `--force-profile` を明示してください。
122
+ `uninstall` は managed hook、marker-managed bridge block、manifest-managed skill directory を削除します。non-managed file には触れません。`.jhste/profile.yaml` は current または legacy generated shape の場合のみ削除されます。変更済み profile を削除する場合は、内容を確認してから `--force-profile` を明示してください。
113
123
 
114
124
  ## インストールモード
115
125
 
@@ -145,36 +155,36 @@ Custom - 効果ベースの質問でセットアップ範囲を選択
145
155
  | Skill | いつ使うか | 何を減らすか |
146
156
  |---|---|---|
147
157
  | [`setup`](skills/setup/SKILL.md)<br>install/connect/update が既存プロジェクト指示を上書きしないようにする安全セットアップ skill | kit をインストール、またはリポジトリに接続するとき | Unsafe overwrite, unmanaged hook conflict, repo instruction replacement |
148
- | [`jhste-engineering-judgment`](skills/jhste-engineering-judgment/SKILL.md)<br>コード変更前に goal、premise、scope、seam、failure path を検証する pre-change 判断 skill | non-trivial code change の前 | Blind agreement, scope creep, unverified assumption, unclear seam |
149
- | [`jhste-code-quality`](skills/jhste-code-quality/SKILL.md)<br>input validation、observable failure handling、secret-safe logging を確認するコード品質 skill | application code の作成またはレビュー時 | Unvalidated input, silent failure, secret logging, oversized file |
150
- | [`jhste-architecture-review`](skills/jhste-architecture-review/SKILL.md)<br>module boundary、side-effect placement、SRP 違反の可能性を確認する architecture review skill | module boundaryapp structure を変更するとき | Pass-through abstraction, mixed responsibility, side-effect leakage |
158
+ | [`jhste-engineering-groundwork`](skills/jhste-engineering-groundwork/SKILL.md)<br>コード変更前に goal、premise、scope、boundary、failure path を検証する pre-change groundwork skill | non-trivial code change の前 | Blind agreement, scope creep, unverified assumption, unclear boundary |
159
+ | [`jhste-code-quality`](skills/jhste-code-quality/SKILL.md)<br>input validation、observable failure handling、secret-safe logging、oversized-file review skill | external input、failure handling、logging、env/config、code-quality review path を触るとき | Unvalidated input, silent failure, secret logging, oversized file |
160
+ | [`jhste-architecture-review`](skills/jhste-architecture-review/SKILL.md)<br>module boundary、side-effect placement、SOLID-informed design risk を確認する architecture review skill | module boundaryapp structure、side-effect placement、responsibility split を変更するとき | Pass-through abstraction, mixed responsibility, side-effect leakage |
151
161
  | [`jhste-db-api-boundary`](skills/jhste-db-api-boundary/SKILL.md)<br>API route、service、repository、SQL 間の責任と data contract を確認する boundary skill | API、controller、service、repository、SQL、persistence code を触るとき | Fat route, unsafe SQL, missing auth/data scoping, leaky DTO |
152
- | [`jhste-crawler-automation`](skills/jhste-crawler-automation/SKILL.md)<br>crawler/scraper/worker/scheduler の producer-consumer seam と side effect を確認する automation skill | crawler、scraper、worker、scheduler、browser automation を触るとき | Fragile automation, unclear producer/consumer boundary, hidden side effect |
162
+ | [`jhste-crawler-automation`](skills/jhste-crawler-automation/SKILL.md)<br>crawler/scraper/worker/scheduler の producer-consumer boundary と side effect を確認する automation skill | crawler、scraper、worker、scheduler、browser automation を触るとき | Fragile automation, unclear producer/consumer boundary, hidden side effect |
153
163
  | [`jhste-red-team-review`](skills/jhste-red-team-review/SKILL.md)<br>完了前に変更コードを攻撃的に再確認する read-only red-team code review skill | non-trivial code work の完了宣言前 | Premature “done”, missed null/auth/env/write/API/performance risk |
154
164
 
155
165
  ## Bundled workflow skills
156
166
 
157
- Normal install では、Matt Pocock の [`mattpocock/skills`](https://github.com/mattpocock/skills) から vendoring した 14 個の workflow skills もインストールします。これらは debugging、planning、architecture、issue workflow、prototyping、handoff に役立ちます。インストールしたくない場合は `--skill-set core` を使ってください。
167
+ Normal install では、Matt Pocock の [`mattpocock/skills`](https://github.com/mattpocock/skills) から vendoring した 13 個の workflow skills もインストールします。これらは debugging、planning、architecture、issue workflow、prototyping、handoff に役立ちます。インストールしたくない場合は `--skill-set core` を使ってください。
158
168
 
159
169
  | Skill | いつ使うか |
160
170
  |---|---|
161
171
  | [`diagnosing-bugs`](skills/diagnosing-bugs/SKILL.md)<br>高速な pass/fail feedback loop を中心に root cause を絞り込む debugging skill | reproduce → minimise → hypothesise → instrument → fix ループが必要なとき |
162
- | [`grill-me`](skills/grill-me/SKILL.md)<br>計画や設計の穴がなくなるまで粘り強く質問する skill | agent に計画や設計を明確になるまで質問させたいとき |
163
- | [`grill-with-docs`](skills/grill-with-docs/SKILL.md)<br>質問しながら domain terms decisions を文書化する design validation skill | 質問プロセスで project vocabulary docs/ADR も更新したいとき |
164
- | [`grilling`](skills/grilling/SKILL.md)<br>実装前に圧迫質問で計画と設計を検証する汎用 grilling skill | 一般的な plan/design stress-test 質問ループが必要なとき |
172
+ | [`grill-me`](skills/grill-me/SKILL.md)<br>ユーザー自身の計画や推論を直接厳しく質問する grilling skill | grilled、challenged、pressure-tested、aggressive questioning を求めるとき |
173
+ | [`grill-with-docs`](skills/grill-with-docs/SKILL.md)<br>grilling の結果を CONTEXT.md ADR に記録する skill | stress-test に加えて documentation、ADR、glossary、CONTEXT update も必要なとき |
174
+ | [`grilling`](skills/grilling/SKILL.md)<br>docs を書かずに plan/design を pressure-test する read-only grilling skill | challenge、pressure-test、red-team、grill、find gaps が必要なとき |
165
175
  | [`domain-modeling`](skills/domain-modeling/SKILL.md)<br>プロジェクト用語、domain model、architectural decision を明確にする skill | domain term、ubiquitous language、architectural decision を整えるとき |
166
- | [`codebase-design`](skills/codebase-design/SKILL.md)<br>deep module、小さな interface、明確な seam のための codebase design skill | より良い module interface、seam、testability vocabulary が必要なとき |
176
+ | [`codebase-design`](skills/codebase-design/SKILL.md)<br>deep module、小さな interface、明確な boundary のための codebase design skill | より良い module interface、boundary、testability vocabulary が必要なとき |
167
177
  | [`improve-codebase-architecture`](skills/improve-codebase-architecture/SKILL.md)<br>shallow module と coupling を見つけ、deepening opportunity を探す architecture skill | deepening opportunity を見つけ、architectural friction を減らしたいとき |
168
- | [`prototype`](skills/prototype/SKILL.md)<br>本実装前に throwaway code で logic や UI 方向を検証する prototyping skill | approach を確定する前に throwaway logic/UI prototype を作りたいとき |
169
- | [`to-prd`](skills/to-prd/SKILL.md)<br>会話 context product requirements に構造化する PRD 作成 skill | 会話 context PRD に変換したいとき |
170
- | [`to-issues`](skills/to-issues/SKILL.md)<br>計画を独立して作業可能な vertical-slice issues に分解する skill | plan を独立して進められる implementation issues に分けたいとき |
171
- | [`triage`](skills/triage/SKILL.md)<br>structured workflow で issue を分類し、次の action を決める triage skill | issue structured triage workflow で処理したいとき |
172
- | [`handoff`](skills/handoff/SKILL.md)<br>次の agent や session が続けられるよう context を圧縮する handoff skill | 別の agent や session に context を渡したいとき |
178
+ | [`prototype`](skills/prototype/SKILL.md)<br>throwaway local code で logic/state model や UI direction を検証する skill | prototype、mock up、try designs、sanity-check、“let me play with it” の依頼時 |
179
+ | [`to-prd`](skills/to-prd/SKILL.md)<br>PRD draft を作成し通常の PRD workflow に載せられる形にする skill | PRD が必要なとき; tracker publish は直接依頼または repo approval がある場合のみ |
180
+ | [`to-issues`](skills/to-issues/SKILL.md)<br>計画を issue-ready vertical slices に分解する skill | implementation tickets/work breakdown が必要なとき; tracker creation は直接依頼または repo approval がある場合 |
181
+ | [`triage`](skills/triage/SKILL.md)<br>issue を分類し次の action を計画する triage skill | issue classification、next-action planning、repo-approved triage writes が必要なとき |
182
+ | [`handoff`](skills/handoff/SKILL.md)<br>次の agent や session が続けられるよう context を圧縮する handoff skill | handoff、session summary、continuation brief、next-agent context の依頼時 |
173
183
  | [`write-a-skill`](skills/write-a-skill/SKILL.md)<br>正しい構造と progressive disclosure で agent skill を作成する skill-writing skill | agent skill を作成または改善したいとき |
174
184
 
175
185
  ## Attribution: Matt Pocock skills
176
186
 
177
- このリポジトリは、上記 14 個の skills を Matt Pocock の [`mattpocock/skills`](https://github.com/mattpocock/skills) から vendoring しています。
187
+ このリポジトリは、上記 13 個の skills を Matt Pocock の [`mattpocock/skills`](https://github.com/mattpocock/skills) から vendoring しています。
178
188
 
179
189
  これらの skills は upstream MIT License に基づいて vendoring されています。このリポジトリは必要な copyright/license notice を保持し、インポート元を記録しています。
180
190
 
@@ -210,7 +220,7 @@ jhste-skills uninstall
210
220
  2. 最初は advisory hook を維持します。commit-time check が不要なら `--skip-hooks` を使い、blocking mode は noise と false positive を十分確認してから有効にします。
211
221
  3. まずデフォルトの 300-line advisory limit を使います。チームが warning-level hook enforcement を受け入れられるようになってから `--line-limit-mode blocking` を使います。
212
222
  4. コード変更中は `guard --scope changed --format text --fail-on error` を手動で実行します。
213
- 5. non-trivial code change の前に、`jhste-engineering-judgment` で scope、seam、failure path、data contract、assumption、各 changed class/module/function の main responsibility を確認します。
223
+ 5. non-trivial code change の前に、`jhste-engineering-groundwork` で scope、boundary、failure path、data contract、assumptionchanged class/module/function の SOLID-informed review lens を確認します。
214
224
  6. non-trivial code work の完了宣言前に `jhste-red-team-review` を使います。docs-only、comment-only、formatting-only、trivial rename-only の変更はスキップします。
215
225
  7. fix + re-review は最大 2 サイクルまでにし、無限ループせず残りの risk を報告します。
216
226
  8. baseline は existing debt をレビューした後にだけ作成します。Baseline は known-issues ledger として扱い、scanner failure を隠すのではなく、ratchet で new debt を防ぐために使います。
@@ -245,7 +255,7 @@ Release acceptance notes は [`docs/ACCEPTANCE_CHECK.md`](docs/ACCEPTANCE_CHECK.
245
255
  - 盲目的に同意しない。
246
256
  - local project authority を上書きしない。
247
257
  - 変更範囲を小さく保つ。
248
- - SRP の観点で responsibility boundary に名前を付ける。
258
+ - SOLID-informed coding discipline を使い、responsibility、extension boundary、caller contract、interface size、concrete dependency direction を確認する。
249
259
  - failure を observable にする。
250
260
  - automated guard output を proof ではなく evidence として扱う。
251
261
  - non-trivial work を完了と呼ぶ前に red-team code review を行う。
package/README.ko.md CHANGED
@@ -4,11 +4,21 @@ Languages: [English](README.md) · [한국어](README.ko.md) · [中文](README.
4
4
 
5
5
  AI 코딩 에이전트가 설정한 코딩 기준을 일관되게 따르도록 만드는 설치형 작업 규칙 세트입니다.
6
6
 
7
- `jhste-skills`는 Codex, Claude Code 같은 AI 코딩 에이전트에게 공통된 엔지니어링 작업 루프를 제공합니다. 코드를 바꾸기 전에 전제를 확인하고, 레포의 기존 지침을 우선시하고, API/database/automation 경계를 지키고, 모듈이 하나의 명확한 책임을 갖는지 확인하는 SRP(Single Responsibility Principle) 관점으로 변경 책임을 점검하고, 변경 파일 guard를 실행하고, 완료를 선언하기 전에 red-team code review를 거치도록 돕습니다.
7
+ `jhste-skills`는 Codex, Claude Code 같은 AI 코딩 에이전트에게 공통된 엔지니어링 작업 루프를 제공합니다. 코드를 바꾸기 전에 전제를 확인하고, 레포의 기존 지침을 우선시하고, API/database/automation 경계를 지키고, SOLID-informed coding discipline과 design review lens를 적용하고, 변경 파일 guard를 실행하고, 완료를 선언하기 전에 red-team code review를 거치도록 돕습니다. guard finding은 자동 SOLID 증명이 아니라 review candidate입니다.
8
+
9
+ ## 여기서 SOLID가 의미하는 것
10
+
11
+ 여기서 SOLID는 자동 준수 체크리스트가 아니라 설계 리뷰 렌즈입니다.
12
+
13
+ - **S — Single Responsibility:** 변경된 함수, 모듈, 클래스는 하나의 주 역할과 하나의 주 변경 이유를 가져야 합니다.
14
+ - **O — Open/Closed:** 새 variant, provider, policy를 추가할 때 핵심 분기문을 계속 고쳐야 한다면 실제 extension boundary가 필요한지 검토합니다.
15
+ - **L — Liskov Substitution:** 구현체는 반환 형태, null 가능성, 에러, side effect, 문서화된 동작에 대한 caller 기대를 약화시키면 안 됩니다.
16
+ - **I — Interface Segregation:** caller가 작은 안정적 일부만 필요한데 거대한 config, interface, props 객체에 의존하지 않게 합니다.
17
+ - **D — Dependency Inversion:** high-level policy가 DB, API, browser, filesystem, email, payment, queue 같은 구체 side effect에 강하게 묶이지 않도록 하고, 필요한 경우 의도적이고 보이는 boundary로 둡니다.
8
18
 
9
19
  이 도구는 프로젝트를 장악하지 않습니다. 레포 안의 `AGENTS.md`, `CLAUDE.md`, docs가 항상 우선입니다. 기본 설정은 advisory 모드이며, marker-managed 방식으로 동작하고, 부담 없이 시도할 수 있도록 설계되어 있습니다.
10
20
 
11
- 스킬은 필요한 상황에서 에이전트가 자동으로 사용하도록 설계되어 있습니다. 예를 들어 API 코드를 수정하면 API/database boundary 스킬을, 완료 직전에는 red-team review 스킬을 사용하도록 안내합니다. 사용자가 직접 특정 스킬을 호출할 수도 있습니다. 예: `jhste-engineering-judgment를 사용해서 이 변경 전제를 검토해줘`, `jhste-red-team-review로 이 diff를 리뷰해줘`.
21
+ 스킬은 필요한 상황에서 에이전트가 자동으로 사용하도록 설계되어 있습니다. 예를 들어 API 코드를 수정하면 API/database boundary 스킬을, 완료 직전에는 red-team review 스킬을 사용하도록 안내합니다. 사용자가 직접 특정 스킬을 호출할 수도 있습니다. 예: `jhste-engineering-groundwork를 사용해서 이 변경 전제를 검토해줘`, `jhste-red-team-review로 이 diff를 리뷰해줘`.
12
22
 
13
23
  ## 왜 설치해야 하나요?
14
24
 
@@ -16,7 +26,7 @@ AI 코딩 에이전트는 빠르지만, 반복적으로 비슷한 방식으로
16
26
 
17
27
  - 불명확한 요구사항이나 틀린 전제를 조용히 받아들입니다.
18
28
  - 도와주려다가 작업 범위를 과하게 넓힙니다.
19
- - UI, route/controller, service, database, side effect 책임을 한곳에 섞어 “한 모듈, 책임” 원칙(SRP)을 깨뜨립니다.
29
+ - UI, route/controller, service, database, side effect 책임을 한곳에 섞거나, 실제 boundary 없는 추상화를 SOLID 명목으로 추가합니다.
20
30
  - 실패를 숨기거나 위험한 로그를 남깁니다.
21
31
  - 변경된 코드를 충분히 확인하기 전에 “완료”라고 말합니다.
22
32
  - 머신이나 레포를 바꿀 때마다 레포별 규칙을 잊어버립니다.
@@ -25,7 +35,7 @@ AI 코딩 에이전트는 빠르지만, 반복적으로 비슷한 방식으로
25
35
 
26
36
  ```text
27
37
  non-trivial code change 전:
28
- 목표, 전제, ownership seam, data contract, failure path, SRP 책임 확인
38
+ 목표, 전제, ownership boundary, data contract, failure path, SOLID-informed review lens 확인
29
39
 
30
40
  수정 중:
31
41
  repo-local instructions를 권위로 취급
@@ -40,7 +50,7 @@ warning이 나오면:
40
50
  bounded fix를 시도하고, 다시 확인한 뒤, 무한 루프에 빠지지 않고 멈춤
41
51
  ```
42
52
 
43
- 기대하는 결과는 더 작은 diff, 더 명확한 SRP 경계, 더 안전한 API/database 코드, 더 적은 silent assumption, 더 솔직한 완료 보고입니다.
53
+ 기대하는 결과는 더 작은 diff, 더 명확한 SOLID-informed boundary, 더 안전한 API/database 코드, 더 적은 silent assumption, 더 솔직한 완료 보고입니다.
44
54
 
45
55
  ## 누가 설치하면 좋나요?
46
56
 
@@ -50,7 +60,7 @@ warning이 나오면:
50
60
  - non-trivial code change 전에 에이전트가 전제를 확인하길 원합니다.
51
61
  - 기존 repo docs가 계속 권위로 남길 원합니다.
52
62
  - 커밋 전 또는 완료 선언 전에 가벼운 advisory check를 두고 싶습니다.
53
- - SRP, API/database boundary, safe logging, input validation, side effect, automation reliability를 중요하게 봅니다.
63
+ - SOLID-informed coding discipline, API/database boundary, safe logging, input validation, side effect, automation reliability를 중요하게 봅니다.
54
64
  - 머신과 레포를 옮겨도 같은 AI 작업 습관을 빠르게 복원하고 싶습니다.
55
65
 
56
66
  반대로, prompt 파일 하나만 원하거나, 설치 즉시 strict CI enforcement를 원하거나, `.jhste/` 파일과 bridge block 생성을 원하지 않거나, 이 도구가 자동으로 코드를 refactor하길 기대한다면 맞지 않을 수 있습니다.
@@ -73,7 +83,7 @@ jhste-skills install
73
83
  기본 설치는 Normal mode를 사용합니다.
74
84
 
75
85
  - bundled skills 전체를 설치합니다: jhste core skills + vendored workflow skills.
76
- - `.jhste/profile.yaml`이 없으면 생성합니다.
86
+ - `.jhste/profile.yaml`이 없으면 생성합니다. `--force`는 generated/managed profile만 refresh하며, modified profile overwrite는 `--force --allow-profile-overwrite`가 필요합니다.
77
87
  - project guidance가 켜져 있으면 `AGENTS.md` 또는 `CLAUDE.md`에 marker-managed bridge block을 추가하거나 갱신합니다.
78
88
  - 안전할 때 advisory pre-commit hook을 설치합니다.
79
89
  - CI, target `package.json`, lockfile, source code는 수정하지 않습니다.
@@ -109,7 +119,7 @@ managed output을 제거하려면:
109
119
  jhste-skills uninstall --yes --repo /path/to/repo
110
120
  ```
111
121
 
112
- `uninstall`은 managed hook, marker-managed bridge block, manifest-managed skill directory를 제거합니다. non-managed file은 건드리지 않습니다. `.jhste/profile.yaml`은 generated shape 그대로일 때만 제거하며, 수정된 profile을 제거하려면 내용을 검토한 뒤 `--force-profile`을 명시해야 합니다.
122
+ `uninstall`은 managed hook, marker-managed bridge block, manifest-managed skill directory를 제거합니다. non-managed file은 건드리지 않습니다. `.jhste/profile.yaml`은 current 또는 legacy generated shape 때만 제거하며, 수정된 profile을 제거하려면 내용을 검토한 뒤 `--force-profile`을 명시해야 합니다.
113
123
 
114
124
  ## 설치 모드
115
125
 
@@ -145,31 +155,31 @@ Custom - 효과 중심 질문을 통해 설치 범위를 직접 선택
145
155
  | Skill | 언제 쓰나 | 무엇을 줄여주나 |
146
156
  |---|---|---|
147
157
  | [`setup`](skills/setup/SKILL.md)<br>설치, 연결, 업데이트가 기존 프로젝트 지침을 덮어쓰지 않도록 하는 안전 설치 스킬 | kit를 설치하거나 레포에 연결할 때 | unsafe overwrite, unmanaged hook conflict, repo instruction replacement |
148
- | [`jhste-engineering-judgment`](skills/jhste-engineering-judgment/SKILL.md)<br>코드 변경 전 목표, 전제, scope, seam, failure path를 검증하는 pre-change 판단 스킬 | non-trivial code change 전 | blind agreement, scope creep, unverified assumption, unclear seam |
149
- | [`jhste-code-quality`](skills/jhste-code-quality/SKILL.md)<br>입력 검증, 관측 가능한 실패 처리, secret-safe logging 점검하는 코드 품질 스킬 | application code 작성/리뷰 | unvalidated input, silent failure, secret logging, oversized file |
150
- | [`jhste-architecture-review`](skills/jhste-architecture-review/SKILL.md)<br>모듈 경계, side effect 위치, SRP 위반 가능성을 검토하는 아키텍처 리뷰 스킬 | module boundary app structure 변경 시 | pass-through abstraction, mixed responsibility, side-effect leakage |
158
+ | [`jhste-engineering-groundwork`](skills/jhste-engineering-groundwork/SKILL.md)<br>코드 변경 전 목표, 전제, scope, boundary, failure path를 검증하는 pre-change groundwork 스킬 | non-trivial code change 전 | blind agreement, scope creep, unverified assumption, unclear boundary |
159
+ | [`jhste-code-quality`](skills/jhste-code-quality/SKILL.md)<br>입력 검증, 관측 가능한 실패 처리, secret-safe logging, oversized-file review 스킬 | external input, failure handling, logging, env/config, code-quality review path를 만질 때 | unvalidated input, silent failure, secret logging, oversized file |
160
+ | [`jhste-architecture-review`](skills/jhste-architecture-review/SKILL.md)<br>모듈 경계, side effect 위치, SOLID-informed design risk를 검토하는 아키텍처 리뷰 스킬 | module boundary, app structure, side-effect placement, responsibility split 변경 시 | pass-through abstraction, mixed responsibility, side-effect leakage |
151
161
  | [`jhste-db-api-boundary`](skills/jhste-db-api-boundary/SKILL.md)<br>API route, service, repository, SQL 사이의 책임 경계와 데이터 계약을 점검하는 boundary 스킬 | API, controller, service, repository, SQL, persistence code를 만질 때 | fat route, unsafe SQL, missing auth/data scoping, leaky DTO |
152
- | [`jhste-crawler-automation`](skills/jhste-crawler-automation/SKILL.md)<br>crawler, scraper, worker, scheduler의 producer/consumer seam과 side effect를 점검하는 자동화 스킬 | crawler, scraper, worker, scheduler, browser automation을 만질 때 | fragile automation, unclear producer/consumer boundary, hidden side effect |
162
+ | [`jhste-crawler-automation`](skills/jhste-crawler-automation/SKILL.md)<br>crawler, scraper, worker, scheduler의 producer/consumer boundary와 side effect를 점검하는 자동화 스킬 | crawler, scraper, worker, scheduler, browser automation을 만질 때 | fragile automation, unclear producer/consumer boundary, hidden side effect |
153
163
  | [`jhste-red-team-review`](skills/jhste-red-team-review/SKILL.md)<br>완료 선언 전 변경 코드를 공격적으로 재검토하는 read-only red-team code review 스킬 | non-trivial code work 완료 선언 전 | premature “done”, 놓치기 쉬운 null/auth/env/write/API/performance risk |
154
164
 
155
165
  ## Bundled workflow skills
156
166
 
157
- Normal install은 Matt Pocock의 [`mattpocock/skills`](https://github.com/mattpocock/skills)에서 vendoring한 workflow skills 14개도 함께 설치합니다. 이 스킬들은 debugging, planning, architecture, issue workflow, prototyping, handoff 작업에 유용합니다. 설치하고 싶지 않다면 `--skill-set core`를 사용하세요.
167
+ Normal install은 Matt Pocock의 [`mattpocock/skills`](https://github.com/mattpocock/skills)에서 vendoring한 workflow skills 13개도 함께 설치합니다. 이 스킬들은 debugging, planning, architecture, issue workflow, prototyping, handoff 작업에 유용합니다. 설치하고 싶지 않다면 `--skill-set core`를 사용하세요.
158
168
 
159
169
  | Skill | 언제 쓰나 |
160
170
  |---|---|
161
171
  | [`diagnosing-bugs`](skills/diagnosing-bugs/SKILL.md)<br>빠른 pass/fail feedback loop를 중심으로 원인을 좁혀가는 debugging 스킬 | reproduce → minimise → hypothesise → instrument → fix 루프가 필요할 때 |
162
- | [`grill-me`](skills/grill-me/SKILL.md)<br>계획이나 설계의 빈틈이 사라질 때까지 집요하게 질문하는 스킬 | agent가 계획이나 설계를 명확해질 때까지 질문하게 하고 싶을 때 |
163
- | [`grill-with-docs`](skills/grill-with-docs/SKILL.md)<br>질문 과정에서 도메인 용어와 의사결정을 문서화하는 설계 검증 스킬 | 질문 과정에서 project vocabulary와 docs/ADR까지 함께 정리하고 싶을 때 |
164
- | [`grilling`](skills/grilling/SKILL.md)<br>구현 전에 계획과 설계를 압박 질문으로 검증하는 일반 grilling 스킬 | 일반적인 plan/design stress-test 질문 루프가 필요할 때 |
172
+ | [`grill-me`](skills/grill-me/SKILL.md)<br>사용자 자신의 계획/추론을 공격적으로 질문하는 direct grilling 스킬 | grilled, challenged, pressure-tested, aggressive questioning을 원할 때 |
173
+ | [`grill-with-docs`](skills/grill-with-docs/SKILL.md)<br>grilling 결과를 CONTEXT.md나 ADR에 기록하는 스킬 | stress-test와 documentation, ADR, glossary, CONTEXT update를 함께 원할 때 |
174
+ | [`grilling`](skills/grilling/SKILL.md)<br>docs write 없이 계획/설계를 pressure-test하는 read-only grilling 스킬 | challenge, pressure-test, red-team, grill, gap finding을 원할 때 |
165
175
  | [`domain-modeling`](skills/domain-modeling/SKILL.md)<br>프로젝트의 용어, 도메인 모델, architectural decision을 선명하게 만드는 스킬 | domain term, ubiquitous language, architectural decision을 다듬을 때 |
166
- | [`codebase-design`](skills/codebase-design/SKILL.md)<br>deep module, 작은 interface, 명확한 seam을 설계하기 위한 코드베이스 설계 스킬 | 더 나은 module interface, seam, testability vocabulary가 필요할 때 |
176
+ | [`codebase-design`](skills/codebase-design/SKILL.md)<br>deep module, 작은 interface, 명확한 boundary를 설계하기 위한 코드베이스 설계 스킬 | 더 나은 module interface, boundary, testability vocabulary가 필요할 때 |
167
177
  | [`improve-codebase-architecture`](skills/improve-codebase-architecture/SKILL.md)<br>얕은 모듈과 결합도를 찾아 더 깊은 모듈로 개선할 기회를 찾는 아키텍처 스킬 | deepening opportunity를 찾고 architectural friction을 줄이고 싶을 때 |
168
- | [`prototype`](skills/prototype/SKILL.md)<br>본 구현 전에 throwaway prototype으로 로직이나 UI 방향을 검증하는 스킬 | approach를 확정하기 전에 throwaway logic/UI prototype을 만들고 싶을 |
169
- | [`to-prd`](skills/to-prd/SKILL.md)<br>대화 내용을 제품 요구사항 문서로 구조화하는 PRD 작성 스킬 | 대화 context를 PRD로 정리하고 싶을 때 |
170
- | [`to-issues`](skills/to-issues/SKILL.md)<br>계획을 독립적으로 작업 가능한 vertical-slice issue로 나누는 스킬 | plan을 독립적으로 처리 가능한 implementation issue로 나누고 싶을 때 |
171
- | [`triage`](skills/triage/SKILL.md)<br>issue를 역할과 상태 기반 workflow로 분류하고 다음 행동을 정하는 triage 스킬 | issue structured triage workflow로 처리하고 싶을 때 |
172
- | [`handoff`](skills/handoff/SKILL.md)<br>다음 agent나 다음 세션이 이어받을 수 있도록 맥락을 압축하는 handoff 스킬 | 다른 agent나 session 이어받을 있도록 context 압축할 |
178
+ | [`prototype`](skills/prototype/SKILL.md)<br>logic/state model이나 UI direction을 throwaway local code로 검증하는 스킬 | prototype, mock up, try designs, sanity-check, “let me play with it” 요청 시 |
179
+ | [`to-prd`](skills/to-prd/SKILL.md)<br>PRD draft를 작성하고 프로젝트 PRD workflow에 맞게 준비하는 스킬 | PRD가 필요할 때; tracker publish는 직접 요청이나 repo approval이 있을 때 |
180
+ | [`to-issues`](skills/to-issues/SKILL.md)<br>계획을 issue-ready vertical slice로 나누는 스킬 | implementation ticket/work breakdown이 필요할 때; tracker creation은 직접 요청이나 repo approval이 있을 때 |
181
+ | [`triage`](skills/triage/SKILL.md)<br>issue를 분류하고 다음 행동을 계획하는 triage 스킬 | issue classification, next-action planning, repo-approved triage write가 필요할 때 |
182
+ | [`handoff`](skills/handoff/SKILL.md)<br>다음 agent나 session이 이어받을 수 있도록 context를 압축하는 handoff 스킬 | handoff, session summary, continuation brief, next-agent context 요청 |
173
183
  | [`write-a-skill`](skills/write-a-skill/SKILL.md)<br>새로운 agent skill을 올바른 구조와 progressive disclosure 방식으로 작성하는 스킬 | agent skill을 새로 만들거나 다듬고 싶을 때 |
174
184
 
175
185
  ## Attribution: Matt Pocock skills
@@ -210,7 +220,7 @@ jhste-skills uninstall
210
220
  2. 처음에는 advisory hook을 유지합니다. commit-time check를 원하지 않으면 `--skip-hooks`를 사용하고, blocking mode는 noise와 false positive를 충분히 확인한 뒤 켭니다.
211
221
  3. 기본 300-line advisory limit을 먼저 사용합니다. warning-level hook enforcement를 팀이 받아들일 준비가 되었을 때만 `--line-limit-mode blocking`을 사용합니다.
212
222
  4. 코드 변경 중에는 `guard --scope changed --format text --fail-on error`를 수동으로 실행합니다.
213
- 5. non-trivial code change 전에는 `jhste-engineering-judgment`로 scope, seam, failure path, data contract, assumption, changed class/module/function의 main responsibility를 확인합니다.
223
+ 5. non-trivial code change 전에는 `jhste-engineering-groundwork`로 scope, boundary, failure path, data contract, assumption, changed class/module/function의 SOLID-informed review lens를 확인합니다.
214
224
  6. non-trivial code work 완료 선언 전에는 `jhste-red-team-review`를 사용합니다. docs-only, comment-only, formatting-only, trivial rename-only 변경은 건너뜁니다.
215
225
  7. fix + re-review는 최대 두 번까지만 반복하고, 무한 review loop 대신 남은 risk를 보고합니다.
216
226
  8. 기존 debt를 검토한 뒤에만 baseline을 생성합니다. Baseline은 known-issues ledger로 취급하고, scanner failure를 숨기는 용도가 아니라 new debt를 막는 ratchet 용도로 사용합니다.
@@ -245,7 +255,7 @@ Release acceptance notes는 [`docs/ACCEPTANCE_CHECK.md`](docs/ACCEPTANCE_CHECK.m
245
255
  - 무조건 동의하지 않습니다.
246
256
  - local project authority를 덮어쓰지 않습니다.
247
257
  - 변경 범위를 작게 유지합니다.
248
- - SRP 관점에서 responsibility boundary를 이름 붙입니다.
258
+ - SOLID-informed coding discipline을 사용해 responsibility를 이름 붙이고, extension boundary, caller contract, interface 크기, concrete dependency 방향을 검토합니다.
249
259
  - failure를 observable하게 만듭니다.
250
260
  - automated guard output을 proof가 아니라 evidence로 취급합니다.
251
261
  - non-trivial work를 완료라고 말하기 전에 red-team code review를 수행합니다.
package/README.md CHANGED
@@ -4,11 +4,21 @@ Languages: [English](README.md) · [한국어](README.ko.md) · [中文](README.
4
4
 
5
5
  An installable working-rules kit that helps AI coding agents consistently follow your engineering standards.
6
6
 
7
- `jhste-skills` gives Codex, Claude Code, and other AI coding agents a shared engineering workflow. It helps agents verify assumptions before editing, respect repo-local instructions, keep API/database/automation boundaries clear, check whether each module has one clear responsibility under SRP (Single Responsibility Principle), run changed-file guards, and perform a red-team code review before claiming work is complete.
7
+ `jhste-skills` gives Codex, Claude Code, and other AI coding agents a shared engineering workflow. It helps agents verify assumptions before editing, respect repo-local instructions, keep API/database/automation boundaries clear, apply SOLID-informed coding discipline and design review, run changed-file guards, and perform a red-team code review before claiming work is complete. Guard findings are review candidates, not automatic SOLID proof.
8
+
9
+ ## What SOLID means here
10
+
11
+ SOLID is used here as a design review lens, not as an automatic compliance checklist.
12
+
13
+ - **S — Single Responsibility:** each changed function, module, or class should have one main job and one main reason to change.
14
+ - **O — Open/Closed:** adding a new variant, provider, or policy should not force repeated edits to core branching when a real extension boundary would be safer.
15
+ - **L — Liskov Substitution:** implementations should not weaken caller expectations for return shape, nullability, errors, side effects, or documented behavior.
16
+ - **I — Interface Segregation:** callers should not depend on broad config, interface, or props objects when they only need a small, stable slice.
17
+ - **D — Dependency Inversion:** high-level policy should not be tightly coupled to concrete DB, API, browser, filesystem, email, payment, or queue effects unless that boundary is intentional and visible.
8
18
 
9
19
  This tool does **not** take over your project. Repo-local `AGENTS.md`, `CLAUDE.md`, and docs remain authoritative. The default setup is advisory, marker-managed, and designed to be low-risk to try.
10
20
 
11
- Skills are designed to be used automatically when the situation calls for them. For example, when an agent edits API code, it is guided to use the API/database boundary skill; before completion, it is guided to use the red-team review skill. You can also call a skill directly, for example: `use jhste-engineering-judgment to review this change premise`, or `run jhste-red-team-review on this diff`.
21
+ Skills are designed to be used automatically when the situation calls for them. For example, when an agent edits API code, it is guided to use the API/database boundary skill; before completion, it is guided to use the red-team review skill. You can also call a skill directly, for example: `use jhste-engineering-groundwork to review this change premise`, or `run jhste-red-team-review on this diff`.
12
22
 
13
23
  ## Why install this?
14
24
 
@@ -16,7 +26,7 @@ AI coding agents are fast, but they fail in predictable ways:
16
26
 
17
27
  - They silently accept unclear requirements or incorrect premises.
18
28
  - They expand the scope while trying to be helpful.
19
- - They mix UI, route/controller, service, database, and side-effect responsibilities in one place, breaking the “one module, one responsibility” principle (SRP).
29
+ - They mix UI, route/controller, service, database, and side-effect responsibilities in one place, or add abstractions without a real SOLID-informed boundary.
20
30
  - They hide failures or produce unsafe logs.
21
31
  - They say “done” before the changed code has been checked.
22
32
  - They forget repo-specific rules when you switch machines or repositories.
@@ -25,7 +35,7 @@ AI coding agents are fast, but they fail in predictable ways:
25
35
 
26
36
  ```text
27
37
  Before a non-trivial code change:
28
- check the goal, premise, ownership seam, data contract, failure path, and SRP responsibility
38
+ check the goal, premise, ownership boundary, data contract, failure path, and SOLID-informed review lens
29
39
 
30
40
  While editing:
31
41
  treat repo-local instructions as the authority
@@ -40,7 +50,7 @@ If warnings appear:
40
50
  attempt a bounded fix, re-check, and stop instead of looping forever
41
51
  ```
42
52
 
43
- The expected result is smaller diffs, clearer SRP boundaries, safer API/database code, fewer silent assumptions, and more honest completion reports.
53
+ The expected result is smaller diffs, clearer SOLID-informed boundaries, safer API/database code, fewer silent assumptions, and more honest completion reports.
44
54
 
45
55
  ## Who should install this?
46
56
 
@@ -50,7 +60,7 @@ Install `jhste-skills` if you:
50
60
  - want agents to verify assumptions before non-trivial code changes;
51
61
  - want existing repo docs to remain the source of authority;
52
62
  - want lightweight advisory checks before commit or before declaring work complete;
53
- - care about SRP, API/database boundaries, safe logging, input validation, side effects, and automation reliability;
63
+ - care about SOLID-informed coding discipline, API/database boundaries, safe logging, input validation, side effects, and automation reliability;
54
64
  - want to restore the same AI coding workflow across machines and repositories.
55
65
 
56
66
  You may not need this if you only want a single prompt file, want strict CI enforcement immediately after installation, do not want generated `.jhste/` files or bridge blocks, or expect this tool to automatically refactor code.
@@ -73,7 +83,7 @@ Use `npx` when you want a one-off run without a global install. Use `npm install
73
83
  The default install uses Normal mode.
74
84
 
75
85
  - Installs all bundled skills: jhste core skills + vendored workflow skills.
76
- - Creates `.jhste/profile.yaml` when missing.
86
+ - Creates `.jhste/profile.yaml` when missing; `--force` refreshes generated/managed profiles, while modified profiles require `--force --allow-profile-overwrite`.
77
87
  - Adds or refreshes a marker-managed bridge block in `AGENTS.md` or `CLAUDE.md` when project guidance is enabled.
78
88
  - Installs an advisory pre-commit hook when safe.
79
89
  - Does not modify CI, target `package.json`, lockfiles, or source code.
@@ -109,7 +119,7 @@ To remove managed outputs:
109
119
  jhste-skills uninstall --yes --repo /path/to/repo
110
120
  ```
111
121
 
112
- `uninstall` removes managed hooks, marker-managed bridge blocks, and manifest-managed skill directories. It does not touch non-managed files. `.jhste/profile.yaml` is removed only when it still matches the generated shape; use `--force-profile` only after reviewing a modified profile.
122
+ `uninstall` removes managed hooks, marker-managed bridge blocks, and manifest-managed skill directories. It does not touch non-managed files. `.jhste/profile.yaml` is removed only when it still matches the current or legacy generated shape; use `--force-profile` only after reviewing a modified profile.
113
123
 
114
124
  ## Install modes
115
125
 
@@ -145,11 +155,11 @@ These are the jhste-authored guardrail skills. They are installed by default as
145
155
  | Skill | Use it when | What it helps reduce |
146
156
  |---|---|---|
147
157
  | [`setup`](skills/setup/SKILL.md)<br>A safe setup skill that prevents install/connect/update flows from overwriting existing project instructions | Installing or connecting the kit to a repository | Unsafe overwrite, unmanaged hook conflict, repo instruction replacement |
148
- | [`jhste-engineering-judgment`](skills/jhste-engineering-judgment/SKILL.md)<br>A pre-change judgment skill that verifies goal, premise, scope, seam, and failure path before code edits | Before non-trivial code changes | Blind agreement, scope creep, unverified assumptions, unclear seams |
149
- | [`jhste-code-quality`](skills/jhste-code-quality/SKILL.md)<br>A code-quality skill for input validation, observable failure handling, and secret-safe logging | Writing or reviewing application code | Unvalidated input, silent failure, secret logging, oversized files |
150
- | [`jhste-architecture-review`](skills/jhste-architecture-review/SKILL.md)<br>An architecture review skill for module boundaries, side-effect placement, and possible SRP violations | Changing module boundaries or app structure | Pass-through abstraction, mixed responsibility, side-effect leakage |
158
+ | [`jhste-engineering-groundwork`](skills/jhste-engineering-groundwork/SKILL.md)<br>A pre-change groundwork skill that verifies goal, premise, scope, boundary, and failure path before code edits | Before non-trivial code changes | Blind agreement, scope creep, unverified assumptions, unclear boundaries |
159
+ | [`jhste-code-quality`](skills/jhste-code-quality/SKILL.md)<br>A code-quality skill for input validation, observable failure handling, secret-safe logging, and oversized-file review | Touching external input, failure handling, logging, env/config, or code-quality review paths | Unvalidated input, silent failure, secret logging, oversized files |
160
+ | [`jhste-architecture-review`](skills/jhste-architecture-review/SKILL.md)<br>An architecture review skill for module boundaries, side-effect placement, and SOLID-informed design risks | Changing module boundaries, app structure, side-effect placement, or responsibility splits | Pass-through abstraction, mixed responsibility, side-effect leakage |
151
161
  | [`jhste-db-api-boundary`](skills/jhste-db-api-boundary/SKILL.md)<br>A boundary skill that checks responsibility and data contracts across API routes, services, repositories, and SQL | Touching API, controller, service, repository, SQL, or persistence code | Fat routes, unsafe SQL, missing auth/data scoping, leaky DTOs |
152
- | [`jhste-crawler-automation`](skills/jhste-crawler-automation/SKILL.md)<br>An automation skill for crawler/scraper/worker/scheduler producer-consumer seams and side effects | Touching crawlers, scrapers, workers, schedulers, or browser automation | Fragile automation, unclear producer/consumer boundaries, hidden side effects |
162
+ | [`jhste-crawler-automation`](skills/jhste-crawler-automation/SKILL.md)<br>An automation skill for crawler/scraper/worker/scheduler producer-consumer boundaries and side effects | Touching crawlers, scrapers, workers, schedulers, or browser automation | Fragile automation, unclear producer/consumer boundaries, hidden side effects |
153
163
  | [`jhste-red-team-review`](skills/jhste-red-team-review/SKILL.md)<br>A read-only red-team code review skill that aggressively re-checks changed code before completion | Before declaring non-trivial code work complete | Premature “done”, missed null/auth/env/write/API/performance risks |
154
164
 
155
165
  ## Bundled workflow skills
@@ -159,17 +169,17 @@ Normal install also includes 13 workflow skills vendored from Matt Pocock's [`ma
159
169
  | Skill | Use it when |
160
170
  |---|---|
161
171
  | [`diagnosing-bugs`](skills/diagnosing-bugs/SKILL.md)<br>A debugging skill that narrows root cause around a fast pass/fail feedback loop | You need a reproduce → minimise → hypothesise → instrument → fix loop |
162
- | [`grill-me`](skills/grill-me/SKILL.md)<br>A skill that asks persistent questions until a plan or design has no obvious gaps | You want the agent to question your plan or design until it becomes clear |
163
- | [`grill-with-docs`](skills/grill-with-docs/SKILL.md)<br>A design-challenge skill that documents domain terms and decisions while questioning the plan | You want project vocabulary and docs/ADRs updated during the questioning process |
164
- | [`grilling`](skills/grilling/SKILL.md)<br>A general grilling skill for pressure-testing plans and designs before implementation | You need a general plan/design stress-test questioning loop |
172
+ | [`grill-me`](skills/grill-me/SKILL.md)<br>A direct personal grilling skill for aggressively questioning your own plan or reasoning | You ask to be grilled, challenged, pressure-tested, or questioned aggressively |
173
+ | [`grill-with-docs`](skills/grill-with-docs/SKILL.md)<br>A grilling skill that records resulting domain terms and decisions in CONTEXT.md or ADRs | You want stress-testing plus documentation, ADR, glossary, or CONTEXT updates |
174
+ | [`grilling`](skills/grilling/SKILL.md)<br>A general read-only grilling skill for pressure-testing plans and designs before implementation | You ask to challenge, pressure-test, red-team, grill, or find gaps without docs updates |
165
175
  | [`domain-modeling`](skills/domain-modeling/SKILL.md)<br>A skill for sharpening project terminology, domain models, and architectural decisions | Refining domain terms, ubiquitous language, or architectural decisions |
166
- | [`codebase-design`](skills/codebase-design/SKILL.md)<br>A codebase design skill for deep modules, small interfaces, and clear seams | You need better module interface, seam, and testability vocabulary |
176
+ | [`codebase-design`](skills/codebase-design/SKILL.md)<br>A codebase design skill for deep modules, small interfaces, and clear boundaries | You need better module interface, boundary, and testability vocabulary |
167
177
  | [`improve-codebase-architecture`](skills/improve-codebase-architecture/SKILL.md)<br>An architecture skill that finds shallow modules and coupling that can be improved into deeper modules | You want to find deepening opportunities and reduce architectural friction |
168
- | [`prototype`](skills/prototype/SKILL.md)<br>A prototyping skill for validating logic or UI direction with throwaway code before implementation | You want a throwaway logic/UI prototype before committing to an approach |
169
- | [`to-prd`](skills/to-prd/SKILL.md)<br>A PRD-writing skill that structures conversation context into product requirements | You want to turn conversation context into a PRD |
170
- | [`to-issues`](skills/to-issues/SKILL.md)<br>A skill that breaks a plan into independently workable vertical-slice issues | You want to split a plan into implementation issues that can be worked independently |
171
- | [`triage`](skills/triage/SKILL.md)<br>An issue triage skill that classifies issues and decides next actions through a structured workflow | You want issues handled through a structured triage workflow |
172
- | [`handoff`](skills/handoff/SKILL.md)<br>A handoff skill that compresses context so the next agent or session can continue | You want to hand context to another agent or session |
178
+ | [`prototype`](skills/prototype/SKILL.md)<br>A prototyping skill for validating logic/state models or UI directions with throwaway local code | You ask to prototype, mock up, try designs, sanity-check behavior, or “let me play with it” |
179
+ | [`to-prd`](skills/to-prd/SKILL.md)<br>A PRD-writing skill that drafts requirements and makes them ready for the normal project workflow | You want a PRD; tracker publication happens only when directly requested or repo-approved |
180
+ | [`to-issues`](skills/to-issues/SKILL.md)<br>A skill that breaks a plan into issue-ready vertical slices | You want implementation tickets or work breakdown; tracker creation follows direct request or repo approval |
181
+ | [`triage`](skills/triage/SKILL.md)<br>An issue triage skill that classifies issues and plans next actions through a structured workflow | You want issue classification, next-action planning, or repo-approved triage writes |
182
+ | [`handoff`](skills/handoff/SKILL.md)<br>A handoff skill that compresses context so the next agent or session can continue | You ask for a handoff, session summary, continuation brief, or next-agent context |
173
183
  | [`write-a-skill`](skills/write-a-skill/SKILL.md)<br>A skill-writing skill for creating agent skills with the right structure and progressive disclosure | You want to create or refine an agent skill |
174
184
 
175
185
  ## Attribution: Matt Pocock skills
@@ -210,7 +220,7 @@ See [`docs/CLI.md`](docs/CLI.md) for detailed command behavior.
210
220
  2. Keep advisory hooks at first. Use `--skip-hooks` if you do not want commit-time checks, and enable blocking mode only after reviewing noise and false positives.
211
221
  3. Start with the default 300-line advisory limit. Use `--line-limit-mode blocking` only when the team is ready for warning-level hook enforcement.
212
222
  4. During code changes, run `guard --scope changed --format text --fail-on error` manually.
213
- 5. Before non-trivial code changes, use `jhste-engineering-judgment` to check scope, seam, failure path, data contract, assumptions, and each changed class/module/function's main responsibility.
223
+ 5. Before non-trivial code changes, use `jhste-engineering-groundwork` to check scope, boundary, failure path, data contract, assumptions, and the SOLID-informed review lens for changed classes/modules/functions.
214
224
  6. Before declaring non-trivial code work complete, use `jhste-red-team-review`. Skip docs-only, comment-only, formatting-only, and trivial rename-only changes.
215
225
  7. Limit fix + re-review loops to two cycles, then report remaining risks instead of looping indefinitely.
216
226
  8. Create a baseline only after reviewing existing debt. Treat the baseline as a known-issues ledger and use ratchet behavior to stop new debt, not to hide scanner failures.
@@ -245,11 +255,11 @@ See [`docs/ACCEPTANCE_CHECK.md`](docs/ACCEPTANCE_CHECK.md) for release acceptanc
245
255
  - Do not agree blindly.
246
256
  - Do not overwrite local project authority.
247
257
  - Keep changes scoped.
248
- - Name responsibility boundaries from an SRP perspective.
258
+ - Use SOLID-informed coding discipline: name responsibilities, review extension boundaries, preserve caller contracts, keep interfaces right-sized, and make concrete dependencies visible.
249
259
  - Make failures observable.
250
260
  - Treat automated guard output as evidence, not proof.
251
261
  - Run a red-team code review before calling non-trivial work complete.
252
262
 
253
263
  Fast agents need guardrails. `jhste-skills` gives them a repo-respecting engineering workflow.
254
264
 
255
- Installed skill directories are tracked with `.jhste-skills-manifest.json`. `--force` refreshes manifest-managed skill copies; overwriting unmanaged differing skill directories still requires the separate `--allow-unmanaged-skill-overwrite` flag after review. `sync` and `update` can also adopt additional known jhste skills into an already managed skills directory so older mixed installs can be reconciled without a manual overwrite flag. Legacy vendored renames are also reconciled during `sync` and `update`, so older managed installs that still have `diagnose` are migrated to `diagnosing-bugs` without leaving duplicate skill directories.
265
+ Installed skill directories are tracked with `.jhste-skills-manifest.json`. `--force` refreshes manifest-managed skill copies and generated/managed profiles; modified profiles need `--force --allow-profile-overwrite`; overwriting unmanaged differing skill directories still requires the separate `--allow-unmanaged-skill-overwrite` flag after review. `sync` and `update` can also adopt additional known jhste skills into an already managed skills directory so older mixed installs can be reconciled without a manual overwrite flag. Legacy managed renames are also reconciled during `sync` and `update`, so older managed installs that still have `diagnose` or `jhste-engineering-judgment` are migrated to `diagnosing-bugs` or `jhste-engineering-groundwork` without leaving duplicate skill directories.