thanh-kit 2.5.1 → 2.5.3

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 (123) hide show
  1. package/dist/index.js +50 -61
  2. package/dist/index.js.map +1 -1
  3. package/package.json +1 -1
  4. package/templates/{commands → command-archive}/ask.md +5 -5
  5. package/templates/{commands → command-archive}/ck-help.md +18 -2
  6. package/templates/command-archive/docs/init.md +38 -0
  7. package/templates/command-archive/docs/summarize.md +22 -0
  8. package/templates/command-archive/docs/update.md +76 -0
  9. package/templates/command-archive/journal.md +18 -0
  10. package/templates/{commands → command-archive}/kanban.md +5 -7
  11. package/templates/{commands → command-archive}/plan/archive.md +2 -2
  12. package/templates/command-archive/plan/red-team.md +200 -0
  13. package/templates/command-archive/plan/validate.md +188 -0
  14. package/templates/command-archive/preview.md +283 -0
  15. package/templates/command-archive/review/codebase/parallel.md +122 -0
  16. package/templates/{commands → command-archive}/test/ui.md +3 -3
  17. package/templates/{commands → command-archive}/use-mcp.md +6 -2
  18. package/templates/command-archive/worktree.md +109 -0
  19. package/templates/{workflows → rules}/development-rules.md +12 -53
  20. package/templates/rules/orchestration-protocol.md +43 -0
  21. package/templates/{workflows → rules}/primary-workflow.md +16 -4
  22. package/templates/rules/team-coordination-rules.md +90 -0
  23. package/templates/schemas/ck-config.schema.json +381 -0
  24. package/templates/commands/README.md +0 -251
  25. package/templates/commands/bootstrap/auto/fast.md +0 -111
  26. package/templates/commands/bootstrap/auto/parallel.md +0 -66
  27. package/templates/commands/bootstrap/auto.md +0 -115
  28. package/templates/commands/bootstrap.md +0 -137
  29. package/templates/commands/brainstorm.md +0 -74
  30. package/templates/commands/build.md +0 -39
  31. package/templates/commands/checkpoint.md +0 -156
  32. package/templates/commands/code/auto.md +0 -170
  33. package/templates/commands/code/no-test.md +0 -158
  34. package/templates/commands/code/parallel.md +0 -55
  35. package/templates/commands/code-simplifier.md +0 -71
  36. package/templates/commands/code.md +0 -176
  37. package/templates/commands/compact.md +0 -57
  38. package/templates/commands/content/cro.md +0 -43
  39. package/templates/commands/content/enhance.md +0 -14
  40. package/templates/commands/content/fast.md +0 -13
  41. package/templates/commands/content/good.md +0 -16
  42. package/templates/commands/context.md +0 -48
  43. package/templates/commands/cook/auto/fast.md +0 -26
  44. package/templates/commands/cook/auto/parallel.md +0 -49
  45. package/templates/commands/cook/auto.md +0 -15
  46. package/templates/commands/cook/fast.md +0 -47
  47. package/templates/commands/cook/hard.md +0 -80
  48. package/templates/commands/cook/parallel.md +0 -90
  49. package/templates/commands/cook.md +0 -105
  50. package/templates/commands/create-feature.md +0 -48
  51. package/templates/commands/db-migrate.md +0 -52
  52. package/templates/commands/debug.md +0 -13
  53. package/templates/commands/design/3d.md +0 -83
  54. package/templates/commands/design/describe.md +0 -23
  55. package/templates/commands/design/fast.md +0 -31
  56. package/templates/commands/design/good.md +0 -35
  57. package/templates/commands/design/screenshot.md +0 -34
  58. package/templates/commands/design/video.md +0 -34
  59. package/templates/commands/docs/init.md +0 -39
  60. package/templates/commands/docs/summarize.md +0 -31
  61. package/templates/commands/docs/update.md +0 -57
  62. package/templates/commands/feature.md +0 -62
  63. package/templates/commands/fix/ci.md +0 -17
  64. package/templates/commands/fix/fast.md +0 -19
  65. package/templates/commands/fix/hard.md +0 -39
  66. package/templates/commands/fix/logs.md +0 -26
  67. package/templates/commands/fix/parallel.md +0 -54
  68. package/templates/commands/fix/test.md +0 -20
  69. package/templates/commands/fix/types.md +0 -9
  70. package/templates/commands/fix/ui.md +0 -48
  71. package/templates/commands/fix-issue.md +0 -177
  72. package/templates/commands/fix.md +0 -43
  73. package/templates/commands/generate-dto.md +0 -67
  74. package/templates/commands/git/cm.md +0 -5
  75. package/templates/commands/git/cp.md +0 -4
  76. package/templates/commands/git/merge.md +0 -40
  77. package/templates/commands/git/pr.md +0 -48
  78. package/templates/commands/integrate/polar.md +0 -28
  79. package/templates/commands/integrate/sepay.md +0 -28
  80. package/templates/commands/investigate.md +0 -324
  81. package/templates/commands/journal.md +0 -7
  82. package/templates/commands/lint.md +0 -47
  83. package/templates/commands/migration.md +0 -111
  84. package/templates/commands/performance.md +0 -110
  85. package/templates/commands/plan/ci.md +0 -33
  86. package/templates/commands/plan/cro.md +0 -69
  87. package/templates/commands/plan/fast.md +0 -86
  88. package/templates/commands/plan/hard.md +0 -103
  89. package/templates/commands/plan/parallel.md +0 -152
  90. package/templates/commands/plan/preview.md +0 -40
  91. package/templates/commands/plan/two.md +0 -52
  92. package/templates/commands/plan/validate.md +0 -132
  93. package/templates/commands/plan.md +0 -36
  94. package/templates/commands/pr.md +0 -49
  95. package/templates/commands/preview.md +0 -87
  96. package/templates/commands/release-notes.md +0 -144
  97. package/templates/commands/review/post-task.md +0 -157
  98. package/templates/commands/review-changes.md +0 -46
  99. package/templates/commands/review.md +0 -56
  100. package/templates/commands/scout/ext.md +0 -35
  101. package/templates/commands/scout.md +0 -283
  102. package/templates/commands/security.md +0 -119
  103. package/templates/commands/skill/add.md +0 -36
  104. package/templates/commands/skill/create.md +0 -29
  105. package/templates/commands/skill/fix-logs.md +0 -22
  106. package/templates/commands/skill/optimize/auto.md +0 -25
  107. package/templates/commands/skill/optimize.md +0 -34
  108. package/templates/commands/skill/plan.md +0 -45
  109. package/templates/commands/worktree.md +0 -126
  110. package/templates/memory/session-log.md +0 -186
  111. package/templates/router/README.md +0 -294
  112. package/templates/router/agents-guide.md +0 -38
  113. package/templates/router/commands-guide.md +0 -122
  114. package/templates/router/decision-flow.md +0 -92
  115. package/templates/router/skills-guide.md +0 -127
  116. package/templates/router/workflows-guide.md +0 -68
  117. package/templates/workflows/README.md +0 -241
  118. package/templates/workflows/orchestration-protocol.md +0 -16
  119. /package/templates/{commands → command-archive}/coding-level.md +0 -0
  120. /package/templates/{commands → command-archive}/review/codebase.md +0 -0
  121. /package/templates/{commands → command-archive}/test.md +0 -0
  122. /package/templates/{commands → command-archive}/watzup.md +0 -0
  123. /package/templates/{workflows → rules}/documentation-management.md +0 -0
@@ -0,0 +1,43 @@
1
+ # Orchestration Protocol
2
+
3
+ ## Delegation Context (MANDATORY)
4
+
5
+ When spawning subagents via Task tool, **ALWAYS** include in prompt:
6
+
7
+ 1. **Work Context Path**: The git root of the PRIMARY files being worked on
8
+ 2. **Reports Path**: `{work_context}/plans/reports/` for that project
9
+ 3. **Plans Path**: `{work_context}/plans/` for that project
10
+
11
+ **Example:**
12
+ ```
13
+ Task prompt: "Fix parser bug.
14
+ Work context: /path/to/project-b
15
+ Reports: /path/to/project-b/plans/reports/
16
+ Plans: /path/to/project-b/plans/"
17
+ ```
18
+
19
+ **Rule:** If CWD differs from work context (editing files in different project), use the **work context paths**, not CWD paths.
20
+
21
+ ---
22
+
23
+ #### Sequential Chaining
24
+ Chain subagents when tasks have dependencies or require outputs from previous steps:
25
+ - **Planning → Implementation → Simplification → Testing → Review**: Use for feature development (tests verify simplified code)
26
+ - **Research → Design → Code → Documentation**: Use for new system components
27
+ - Each agent completes fully before the next begins
28
+ - Pass context and outputs between agents in the chain
29
+
30
+ #### Parallel Execution
31
+ Spawn multiple subagents simultaneously for independent tasks:
32
+ - **Code + Tests + Docs**: When implementing separate, non-conflicting components
33
+ - **Multiple Feature Branches**: Different agents working on isolated features
34
+ - **Cross-platform Development**: iOS and Android specific implementations
35
+ - **Careful Coordination**: Ensure no file conflicts or shared resource contention
36
+ - **Merge Strategy**: Plan integration points before parallel execution begins
37
+
38
+ ---
39
+
40
+ ## Agent Teams (Optional)
41
+
42
+ For multi-session parallel collaboration, activate the `/team` skill.
43
+ Not part of the default orchestration workflow. See `.claude/skills/team/SKILL.md` for templates, decision criteria, and spawn instructions.
@@ -14,17 +14,18 @@
14
14
  - **[IMPORTANT]** After creating or modifying code file, run compile command/script to check for any compile errors.
15
15
 
16
16
  #### 2. Testing
17
- - Delegate to `tester` agent to run tests and analyze the summary report.
17
+ - Delegate to `tester` agent to run tests on the **simplified code**
18
18
  - Write comprehensive unit tests
19
19
  - Ensure high code coverage
20
20
  - Test error scenarios
21
21
  - Validate performance requirements
22
- - Tests are critical for ensuring code quality and reliability, **DO NOT** ignore failing tests just to pass the build.
22
+ - Tests verify the FINAL code that will be reviewed and merged
23
+ - **DO NOT** ignore failing tests just to pass the build.
23
24
  - **IMPORTANT:** make sure you don't use fake data, mocks, cheats, tricks, temporary solutions, just to pass the build or github actions.
24
25
  - **IMPORTANT:** Always fix failing tests follow the recommendations and delegate to `tester` agent to run tests again, only finish your session when all tests pass.
25
26
 
26
27
  #### 3. Code Quality
27
- - After finish implementation, delegate to `code-reviewer` agent to review code.
28
+ - After testing passes, delegate to `code-reviewer` agent to review clean, tested code.
28
29
  - Follow coding standards and conventions
29
30
  - Write self-documenting code
30
31
  - Add meaningful comments for complex logic
@@ -42,4 +43,15 @@
42
43
  - When a user report bugs or issues on the server or a CI/CD pipeline, delegate to `debugger` agent to run tests and analyze the summary report.
43
44
  - Read the summary report from `debugger` agent and implement the fix.
44
45
  - Delegate to `tester` agent to run tests and analyze the summary report.
45
- - If the `tester` agent reports failed tests, fix them follow the recommendations and repeat from the **Step 2**.
46
+ - If the `tester` agent reports failed tests, fix them follow the recommendations and repeat from the **Step 3**.
47
+
48
+ #### 6. Visual Explanations
49
+ When explaining complex code, protocols, or architecture:
50
+ - **When to use:** User asks "explain", "how does X work", "visualize", or topic has 3+ interacting components
51
+ - Use `/preview --explain <topic>` to generate visual explanation with ASCII + Mermaid
52
+ - Use `/preview --diagram <topic>` for architecture and data flow diagrams
53
+ - Use `/preview --slides <topic>` for step-by-step walkthroughs
54
+ - Use `/preview --ascii <topic>` for terminal-friendly output only
55
+ - **Plan context:** Visuals save to plan folder from `## Plan Context` hook injection; if none, uses `plans/visuals/`
56
+ - Auto-opens in browser via markdown-novel-viewer with Mermaid rendering
57
+ - See `development-rules.md` → "Visual Aids" section for additional guidance
@@ -0,0 +1,90 @@
1
+ # Team Coordination Rules
2
+
3
+ > These rules only apply when operating as a teammate within an Agent Team.
4
+ > They have no effect on standard sessions or subagent workflows.
5
+
6
+ Rules for agents operating as teammates within an Agent Team.
7
+
8
+ ## File Ownership (CRITICAL)
9
+
10
+ - Each teammate MUST own distinct files — no overlapping edits
11
+ - Define ownership via glob patterns in task descriptions: `File ownership: src/api/*, src/models/*`
12
+ - Lead resolves ownership conflicts by restructuring tasks or handling shared files directly
13
+ - Tester owns test files only; reads implementation files but never edits them
14
+ - If ownership violation detected: STOP and report to lead immediately
15
+
16
+ ## Git Safety
17
+
18
+ - Prefer git worktrees for implementation teams — each dev in own worktree eliminates conflicts
19
+ - Never force-push from a teammate session
20
+ - Commit frequently with descriptive messages
21
+ - Pull before push to catch merge conflicts early
22
+ - If working in a git worktree, commit/push to the worktree branch — not main or dev
23
+
24
+ ## Communication Protocol
25
+
26
+ - Use `SendMessage(type: "message")` for peer DMs — always specify recipient by name
27
+ - Use `SendMessage(type: "broadcast")` ONLY for critical blocking issues affecting entire team
28
+ - Mark tasks completed via `TaskUpdate` BEFORE sending completion message to lead
29
+ - Include actionable findings in messages, not just "I'm done"
30
+ - Never send structured JSON status messages — use plain text
31
+
32
+ ## CK Stack Conventions
33
+
34
+ ### Report Output
35
+ - Save reports to `{CK_REPORTS_PATH}` (injected via hook, fallback: `plans/reports/`)
36
+ - Naming: `{type}-{date}-{slug}.md` where type = your role (researcher, reviewer, debugger)
37
+ - Sacrifice grammar for concision. List unresolved questions at end.
38
+
39
+ ### Commit Messages
40
+ - Use conventional commits: `feat:`, `fix:`, `docs:`, `refactor:`, `test:`, `chore:`
41
+ - No AI references in commit messages
42
+ - Keep commits focused on actual code changes
43
+
44
+ ### Docs Sync (Implementation Teams Only)
45
+ - After completing implementation tasks, lead MUST evaluate docs impact
46
+ - State explicitly: `Docs impact: [none|minor|major]`
47
+ - If impact: update `docs/` directory or note in completion message
48
+
49
+ ## Task Claiming
50
+
51
+ - Claim lowest-ID unblocked task first (earlier tasks set up context for later ones)
52
+ - Check `TaskList` after completing each task for newly unblocked work
53
+ - Set task to `in_progress` before starting work
54
+ - If all tasks blocked, notify lead and offer to help unblock
55
+
56
+ ## Plan Approval Flow
57
+
58
+ When `plan_mode_required` is set:
59
+ 1. Research and plan your approach (read-only — no file edits)
60
+ 2. Send plan via `ExitPlanMode` — this triggers approval request to lead
61
+ 3. Wait for lead's `plan_approval_response`
62
+ 4. If rejected: revise based on feedback, resubmit
63
+ 5. If approved: proceed with implementation
64
+
65
+ ## Conflict Resolution
66
+
67
+ - If two teammates need the same file: escalate to lead immediately
68
+ - If a teammate's plan is rejected twice: lead takes over that task
69
+ - If findings conflict between reviewers: lead synthesizes and documents disagreement
70
+ - If blocked by another teammate's incomplete work: message them directly first, escalate to lead if unresponsive
71
+
72
+ ## Shutdown Protocol
73
+
74
+ - Approve shutdown requests unless mid-critical-operation
75
+ - Always mark current task as completed before approving shutdown
76
+ - If rejecting shutdown, explain why concisely
77
+ - Extract `requestId` from shutdown request JSON and pass to `shutdown_response`
78
+
79
+ ## Idle State (Normal Behavior)
80
+
81
+ - Going idle after sending a message is NORMAL — not an error
82
+ - Idle means waiting for input, not disconnected
83
+ - Sending a message to an idle teammate wakes them up
84
+ - Do not treat idle notifications as completion signals — check task status instead
85
+
86
+ ## Discovery
87
+
88
+ - Read team config at `~/.claude/teams/{team-name}/config.json` to discover teammates
89
+ - Always refer to teammates by NAME (not agent ID)
90
+ - Names are used for: `recipient` in SendMessage, task `owner` in TaskUpdate
@@ -0,0 +1,381 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft-07/schema#",
3
+ "$id": "https://claudekit.cc/schemas/ck-config.schema.json",
4
+ "title": "ClaudeKit Configuration",
5
+ "description": "Configuration schema for ClaudeKit Engineer .ck.json files",
6
+ "type": "object",
7
+ "properties": {
8
+ "$schema": {
9
+ "type": "string",
10
+ "description": "JSON Schema reference for editor autocompletion"
11
+ },
12
+ "codingLevel": {
13
+ "type": "integer",
14
+ "minimum": -1,
15
+ "maximum": 3,
16
+ "default": -1,
17
+ "description": "User coding experience level: -1=auto, 0=beginner, 1=intermediate, 2=advanced, 3=expert"
18
+ },
19
+ "privacyBlock": {
20
+ "type": "boolean",
21
+ "default": true,
22
+ "description": "Enable privacy block hook to protect sensitive files (.env, credentials, etc.)"
23
+ },
24
+ "docs": {
25
+ "type": "object",
26
+ "description": "Documentation settings",
27
+ "properties": {
28
+ "maxLoc": {
29
+ "type": "integer",
30
+ "minimum": 100,
31
+ "maximum": 5000,
32
+ "default": 800,
33
+ "description": "Maximum lines of code per documentation file"
34
+ }
35
+ },
36
+ "additionalProperties": false
37
+ },
38
+ "plan": {
39
+ "type": "object",
40
+ "description": "Plan naming and validation settings",
41
+ "properties": {
42
+ "namingFormat": {
43
+ "type": "string",
44
+ "default": "{date}-{issue}-{slug}",
45
+ "description": "Format for plan directory names. Variables: {date}, {issue}, {slug}"
46
+ },
47
+ "dateFormat": {
48
+ "type": "string",
49
+ "default": "YYMMDD-HHmm",
50
+ "description": "Date format for plan names (moment.js format)"
51
+ },
52
+ "issuePrefix": {
53
+ "type": "string",
54
+ "default": "GH-",
55
+ "description": "Prefix for issue references (e.g., GH-, JIRA-)"
56
+ },
57
+ "reportsDir": {
58
+ "type": "string",
59
+ "default": "reports",
60
+ "description": "Subdirectory name for reports within plans"
61
+ },
62
+ "resolution": {
63
+ "type": "object",
64
+ "description": "Plan resolution settings",
65
+ "properties": {
66
+ "order": {
67
+ "type": "array",
68
+ "items": {
69
+ "type": "string",
70
+ "enum": [
71
+ "session",
72
+ "branch",
73
+ "directory"
74
+ ]
75
+ },
76
+ "default": [
77
+ "session",
78
+ "branch"
79
+ ],
80
+ "description": "Order of resolution strategies for plan context"
81
+ },
82
+ "branchPattern": {
83
+ "type": "string",
84
+ "default": "(?:feat|fix|chore|refactor|docs)/(?:[^/]+/)?(.+)",
85
+ "description": "Regex pattern to extract plan slug from branch name"
86
+ }
87
+ },
88
+ "additionalProperties": false
89
+ },
90
+ "validation": {
91
+ "type": "object",
92
+ "description": "Plan validation settings",
93
+ "properties": {
94
+ "mode": {
95
+ "type": "string",
96
+ "enum": [
97
+ "prompt",
98
+ "auto",
99
+ "strict",
100
+ "none"
101
+ ],
102
+ "default": "prompt",
103
+ "description": "Validation mode: prompt=ask questions, auto=auto-validate, strict=require all, none=skip"
104
+ },
105
+ "minQuestions": {
106
+ "type": "integer",
107
+ "minimum": 0,
108
+ "maximum": 20,
109
+ "default": 3,
110
+ "description": "Minimum validation questions to ask"
111
+ },
112
+ "maxQuestions": {
113
+ "type": "integer",
114
+ "minimum": 1,
115
+ "maximum": 20,
116
+ "default": 8,
117
+ "description": "Maximum validation questions to ask"
118
+ },
119
+ "focusAreas": {
120
+ "type": "array",
121
+ "items": {
122
+ "type": "string",
123
+ "enum": [
124
+ "assumptions",
125
+ "risks",
126
+ "tradeoffs",
127
+ "architecture",
128
+ "security",
129
+ "performance",
130
+ "testing",
131
+ "dependencies"
132
+ ]
133
+ },
134
+ "default": [
135
+ "assumptions",
136
+ "risks",
137
+ "tradeoffs",
138
+ "architecture"
139
+ ],
140
+ "description": "Focus areas for validation questions"
141
+ }
142
+ },
143
+ "additionalProperties": false
144
+ }
145
+ },
146
+ "additionalProperties": false
147
+ },
148
+ "paths": {
149
+ "type": "object",
150
+ "description": "Directory paths configuration",
151
+ "properties": {
152
+ "docs": {
153
+ "type": "string",
154
+ "default": "docs",
155
+ "description": "Path to documentation directory"
156
+ },
157
+ "plans": {
158
+ "type": "string",
159
+ "default": "plans",
160
+ "description": "Path to plans directory"
161
+ }
162
+ },
163
+ "additionalProperties": false
164
+ },
165
+ "locale": {
166
+ "type": "object",
167
+ "description": "Language and locale settings",
168
+ "properties": {
169
+ "thinkingLanguage": {
170
+ "type": [
171
+ "string",
172
+ "null"
173
+ ],
174
+ "default": null,
175
+ "description": "Language for Claude's thinking (null=English)"
176
+ },
177
+ "responseLanguage": {
178
+ "type": [
179
+ "string",
180
+ "null"
181
+ ],
182
+ "default": null,
183
+ "description": "Language for Claude's responses (null=match user)"
184
+ }
185
+ },
186
+ "additionalProperties": false
187
+ },
188
+ "trust": {
189
+ "type": "object",
190
+ "description": "Trust mode settings for auto-approval",
191
+ "properties": {
192
+ "passphrase": {
193
+ "type": [
194
+ "string",
195
+ "null"
196
+ ],
197
+ "default": null,
198
+ "description": "Passphrase to enable trust mode (null=disabled)"
199
+ },
200
+ "enabled": {
201
+ "type": "boolean",
202
+ "default": false,
203
+ "description": "Whether trust mode is currently enabled"
204
+ }
205
+ },
206
+ "additionalProperties": false
207
+ },
208
+ "project": {
209
+ "type": "object",
210
+ "description": "Project type detection settings",
211
+ "properties": {
212
+ "type": {
213
+ "type": "string",
214
+ "enum": [
215
+ "auto",
216
+ "library",
217
+ "application",
218
+ "monorepo",
219
+ "cli",
220
+ "api",
221
+ "web",
222
+ "mobile"
223
+ ],
224
+ "default": "auto",
225
+ "description": "Project type (auto=detect from package.json)"
226
+ },
227
+ "packageManager": {
228
+ "type": "string",
229
+ "enum": [
230
+ "auto",
231
+ "npm",
232
+ "yarn",
233
+ "pnpm",
234
+ "bun"
235
+ ],
236
+ "default": "auto",
237
+ "description": "Package manager (auto=detect from lockfile)"
238
+ },
239
+ "framework": {
240
+ "type": "string",
241
+ "enum": [
242
+ "auto",
243
+ "react",
244
+ "vue",
245
+ "angular",
246
+ "svelte",
247
+ "nextjs",
248
+ "nuxt",
249
+ "express",
250
+ "nestjs",
251
+ "fastify",
252
+ "none"
253
+ ],
254
+ "default": "auto",
255
+ "description": "Framework (auto=detect from dependencies)"
256
+ }
257
+ },
258
+ "additionalProperties": false
259
+ },
260
+ "gemini": {
261
+ "type": "object",
262
+ "description": "Gemini CLI configuration",
263
+ "properties": {
264
+ "model": {
265
+ "type": "string",
266
+ "enum": [
267
+ "gemini-2.5-flash",
268
+ "gemini-2.5-pro",
269
+ "gemini-3-pro-preview",
270
+ "gemini-3-flash-preview"
271
+ ],
272
+ "default": "gemini-3-flash-preview",
273
+ "description": "Gemini model to use for CLI commands"
274
+ }
275
+ },
276
+ "additionalProperties": false
277
+ },
278
+ "skills": {
279
+ "type": "object",
280
+ "description": "Per-skill configuration",
281
+ "properties": {
282
+ "research": {
283
+ "type": "object",
284
+ "properties": {
285
+ "useGemini": {
286
+ "type": "boolean",
287
+ "default": true,
288
+ "description": "Use Gemini CLI for research (false=use WebSearch)"
289
+ }
290
+ },
291
+ "additionalProperties": true
292
+ }
293
+ },
294
+ "additionalProperties": {
295
+ "type": "object",
296
+ "description": "Custom skill configuration"
297
+ }
298
+ },
299
+ "assertions": {
300
+ "type": "array",
301
+ "items": {
302
+ "type": "object",
303
+ "properties": {
304
+ "pattern": {
305
+ "type": "string",
306
+ "description": "Glob pattern or regex for files to match"
307
+ },
308
+ "rule": {
309
+ "type": "string",
310
+ "description": "Assertion rule to enforce"
311
+ },
312
+ "message": {
313
+ "type": "string",
314
+ "description": "Error message when assertion fails"
315
+ }
316
+ }
317
+ },
318
+ "default": [],
319
+ "description": "Code assertions and rules to enforce"
320
+ },
321
+ "statusline": {
322
+ "type": "string",
323
+ "enum": ["full", "compact", "minimal", "none"],
324
+ "default": "full",
325
+ "description": "Statusline display mode: full=all features, compact=2-3 lines, minimal=single text line, none=disabled"
326
+ },
327
+ "hooks": {
328
+ "type": "object",
329
+ "description": "Toggle individual hooks on/off. Default: all enabled. Set a hook to `false` to disable; only explicit `false` disables (undefined/null/missing keys default to enabled).",
330
+ "properties": {
331
+ "session-init": {
332
+ "type": "boolean",
333
+ "default": true,
334
+ "description": "SessionStart hook - project detection and env setup"
335
+ },
336
+ "subagent-init": {
337
+ "type": "boolean",
338
+ "default": true,
339
+ "description": "SubagentStart hook - injects context to subagents"
340
+ },
341
+ "descriptive-name": {
342
+ "type": "boolean",
343
+ "default": true,
344
+ "description": "PreToolUse hook - descriptive name for scripts"
345
+ },
346
+ "dev-rules-reminder": {
347
+ "type": "boolean",
348
+ "default": true,
349
+ "description": "UserPromptSubmit hook - injects dev rules context"
350
+ },
351
+ "usage-context-awareness": {
352
+ "type": "boolean",
353
+ "default": true,
354
+ "description": "UserPromptSubmit/PostToolUse hook - usage limits fetching and injection"
355
+ },
356
+ "context-tracking": {
357
+ "type": "boolean",
358
+ "default": true,
359
+ "description": "Context window tracking injection (% used, token counts) in dev-rules-reminder"
360
+ },
361
+ "scout-block": {
362
+ "type": "boolean",
363
+ "default": true,
364
+ "description": "PreToolUse hook - blocks heavy directories"
365
+ },
366
+ "privacy-block": {
367
+ "type": "boolean",
368
+ "default": true,
369
+ "description": "PreToolUse hook - blocks sensitive files"
370
+ },
371
+ "post-edit-simplify-reminder": {
372
+ "type": "boolean",
373
+ "default": true,
374
+ "description": "PostToolUse hook - simplify reminder after edits"
375
+ }
376
+ },
377
+ "additionalProperties": false
378
+ }
379
+ },
380
+ "additionalProperties": true
381
+ }