skillwiki 0.2.1-beta.21 → 0.2.1-beta.22

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "skillwiki",
3
- "version": "0.2.1-beta.21",
3
+ "version": "0.2.1-beta.22",
4
4
  "type": "module",
5
5
  "bin": {
6
6
  "skillwiki": "dist/cli.js"
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "skillwiki",
3
- "version": "0.2.1-beta.21",
3
+ "version": "0.2.1-beta.22",
4
4
  "skills": "./",
5
- "description": "Project-aware Karpathy-style knowledge base for Claude Code: 17 prompt-only skills (wiki-*, proj-*, using-skillwiki) backed by the deterministic `skillwiki` CLI.",
5
+ "description": "Project-aware Karpathy-style knowledge base for Claude Code: 18 prompt-only skills (wiki-*, proj-*, using-skillwiki) backed by the deterministic `skillwiki` CLI.",
6
6
  "author": {
7
7
  "name": "karlorz",
8
8
  "url": "https://github.com/karlorz"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@skillwiki/skills",
3
- "version": "0.2.1-beta.21",
3
+ "version": "0.2.1-beta.22",
4
4
  "private": true,
5
5
  "files": [
6
6
  "wiki-*",
@@ -86,6 +86,7 @@ sha256: # computed by skillwiki hash over body bytes after closing ---
86
86
  | `wiki-sync` | Safely sync vault git repository — push/pull with lint guards and conflict resolution |
87
87
  | `wiki-canvas` | Generate Obsidian Canvas visualization from vault graph data |
88
88
  | `proj-decide` | Write an Architectural Decision Record (ADR) |
89
+ | `wiki-gate-plan-mode` | Toggle EnterPlanMode gating — force superpowers planning instead of built-in plan mode |
89
90
 
90
91
  ## CLI Backbone
91
92
 
@@ -0,0 +1,80 @@
1
+ ---
2
+ version: 0.2.1
3
+ name: wiki-gate-plan-mode
4
+ description: Toggle EnterPlanMode gating — force superpowers planning skills instead of built-in plan mode
5
+ ---
6
+
7
+ # wiki-gate-plan-mode
8
+
9
+ Gate the agent away from Claude Code's built-in `EnterPlanMode` tool, forcing
10
+ all planning through `superpowers:brainstorming` → `superpowers:writing-plans`
11
+ (or a configurable pipeline). Uses `permissions.deny` for two-layer enforcement:
12
+ the tool is removed from the model's context before it ever sees it.
13
+
14
+ ## When This Skill Activates
15
+
16
+ - User says "gate plan mode", "disable EnterPlanMode", "force superpowers planning"
17
+ - User asks to toggle, check, or configure plan-mode gating
18
+ - User wants to enforce structured planning workflows in a project
19
+
20
+ ## Pre-orientation reads
21
+
22
+ None for the first run.
23
+
24
+ ## Steps
25
+
26
+ 0. **Parse arguments.** Accept one of:
27
+ - `on` — enable gating (add EnterPlanMode to deny)
28
+ - `off` — disable gating (remove EnterPlanMode from deny)
29
+ - `status` (default if no argument) — report current state
30
+
31
+ 1. **Locate settings file.** Check in this order:
32
+ - `~/.claude/settings.json` (user-level, global — primary target for plan-mode gating)
33
+ - `.claude/settings.json` (project-level, checked into repo — use if user specifies project scope)
34
+ If the target file does not exist, create it with `{ "permissions": { "deny": [] } }`.
35
+
36
+ 2. **Read current state.** Parse the settings JSON. Check whether `"EnterPlanMode"` is present in `permissions.deny[]`.
37
+
38
+ 3. **Apply the requested action:**
39
+
40
+ **`on`:**
41
+ - If `"EnterPlanMode"` is already in `permissions.deny`, report "already gated" and stop.
42
+ - Otherwise, add `"EnterPlanMode"` to `permissions.deny[]`. Create the array if absent.
43
+ - Write the updated JSON back, preserving formatting.
44
+ - Report: "EnterPlanMode gated — agent will use superpowers planning skills."
45
+
46
+ **`off`:**
47
+ - If `"EnterPlanMode"` is not in `permissions.deny`, report "already ungated" and stop.
48
+ - Otherwise, remove `"EnterPlanMode"` from `permissions.deny[]`. If the array is now empty, remove the `deny` key.
49
+ - Write the updated JSON back.
50
+ - Report: "EnterPlanMode ungated — built-in plan mode is available."
51
+
52
+ **`status`:**
53
+ - Check both `~/.claude/settings.json` and `.claude/settings.json`.
54
+ - Report whether EnterPlanMode is currently gated or ungated.
55
+ - If gated, list which settings file contains the deny entry.
56
+
57
+ 4. **Suggest CLAUDE.md directive (on action only).** After enabling gating, check whether the project's `CLAUDE.md` contains a planning directive (search for "EnterPlanMode" or "superpowers:brainstorming"). If not found, suggest adding:
58
+
59
+ ```
60
+ ## Planning
61
+
62
+ Use superpowers:brainstorming → superpowers:writing-plans for all planning. EnterPlanMode is disabled.
63
+ ```
64
+
65
+ Do NOT edit CLAUDE.md automatically — only suggest.
66
+
67
+ ## Schema Warning
68
+
69
+ The JSON Schema Store's `claude-code-settings.json` schema has a closed regex for `permissions.deny` that includes `ExitPlanMode` but **omits `EnterPlanMode`**. IDEs (VS Code, JetBrains) will show a validation warning. This is a schema staleness issue, not a runtime issue — Claude Code's runtime accepts `EnterPlanMode` in `permissions.deny` and enforces it correctly. See `[[queries/claude-code-plan-mode-schema-validation]]` for full analysis.
70
+
71
+ ## Stop conditions
72
+
73
+ - No project directory found (not inside a git repo or project).
74
+ - Settings file exists but is not valid JSON and cannot be parsed.
75
+
76
+ ## Forbidden
77
+
78
+ - Do not add any tool other than `EnterPlanMode` to the deny list.
79
+ - Do not modify CLAUDE.md automatically — only suggest changes.
80
+ - Do not remove other entries from `permissions.deny` when toggling off — only remove `EnterPlanMode`.