@infinitedusky/indusk-mcp 0.7.1 → 0.7.2
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.
|
@@ -295,7 +295,7 @@ export async function init(projectRoot, options = {}) {
|
|
|
295
295
|
console.info("\n[Hooks]");
|
|
296
296
|
const hooksSource = join(packageRoot, "hooks");
|
|
297
297
|
const hooksTarget = join(projectRoot, ".claude/hooks");
|
|
298
|
-
const hookFiles = ["check-gates.js", "gate-reminder.js"];
|
|
298
|
+
const hookFiles = ["check-gates.js", "gate-reminder.js", "validate-impl-structure.js"];
|
|
299
299
|
if (existsSync(hooksSource)) {
|
|
300
300
|
mkdirSync(hooksTarget, { recursive: true });
|
|
301
301
|
for (const file of hookFiles) {
|
|
@@ -318,7 +318,10 @@ export async function init(projectRoot, options = {}) {
|
|
|
318
318
|
PreToolUse: [
|
|
319
319
|
{
|
|
320
320
|
matcher: "Edit|Write",
|
|
321
|
-
hooks: [
|
|
321
|
+
hooks: [
|
|
322
|
+
{ type: "command", command: "node .claude/hooks/check-gates.js" },
|
|
323
|
+
{ type: "command", command: "node .claude/hooks/validate-impl-structure.js" },
|
|
324
|
+
],
|
|
322
325
|
},
|
|
323
326
|
],
|
|
324
327
|
PostToolUse: [
|
|
@@ -335,11 +338,15 @@ export async function init(projectRoot, options = {}) {
|
|
|
335
338
|
for (const [event, entries] of Object.entries(hookConfig)) {
|
|
336
339
|
const existingEntries = existing.hooks[event] || [];
|
|
337
340
|
// Check if our hook is already present
|
|
338
|
-
const hasOurHook = existingEntries.some((e) => e.hooks?.some((h) => h.command?.includes("check-gates") ||
|
|
341
|
+
const hasOurHook = existingEntries.some((e) => e.hooks?.some((h) => h.command?.includes("check-gates") ||
|
|
342
|
+
h.command?.includes("gate-reminder") ||
|
|
343
|
+
h.command?.includes("validate-impl")));
|
|
339
344
|
if (!hasOurHook || force) {
|
|
340
345
|
// Remove old entries if force, then add
|
|
341
346
|
if (force) {
|
|
342
|
-
existing.hooks[event] = existingEntries.filter((e) => !e.hooks?.some((h) => h.command?.includes("check-gates") ||
|
|
347
|
+
existing.hooks[event] = existingEntries.filter((e) => !e.hooks?.some((h) => h.command?.includes("check-gates") ||
|
|
348
|
+
h.command?.includes("gate-reminder") ||
|
|
349
|
+
h.command?.includes("validate-impl")));
|
|
343
350
|
}
|
|
344
351
|
existing.hooks[event] = [...(existing.hooks[event] || []), ...entries];
|
|
345
352
|
hooksUpdated = true;
|
|
@@ -114,7 +114,7 @@ export async function update(projectRoot) {
|
|
|
114
114
|
let hooksUpdated = 0;
|
|
115
115
|
let hooksCurrent = 0;
|
|
116
116
|
if (existsSync(hooksSource) && existsSync(hooksTarget)) {
|
|
117
|
-
const hookFiles = ["check-gates.js", "gate-reminder.js"];
|
|
117
|
+
const hookFiles = ["check-gates.js", "gate-reminder.js", "validate-impl-structure.js"];
|
|
118
118
|
for (const file of hookFiles) {
|
|
119
119
|
const sourceFile = join(hooksSource, file);
|
|
120
120
|
const targetFile = join(hooksTarget, file);
|
package/package.json
CHANGED
package/skills/document.md
CHANGED
|
@@ -72,6 +72,7 @@ The `decisions/` and `lessons/` directories are **not** populated during normal
|
|
|
72
72
|
- **Meaningful labels.** Use full words, not abbreviations. `Plan Skill` not `PS`.
|
|
73
73
|
- **Do not use custom `style`, `classDef`, or `themeVariables` in diagrams.** The docs site supports both light and dark mode. The vitepress-plugin-mermaid auto-switches between Mermaid's `default` (light) and `dark` themes. Hardcoded colors (fills, text colors, borders) that work in one mode will be unreadable in the other. Let the built-in theme handle all colors. If you need visual grouping, use `subgraph` blocks instead of color-coding.
|
|
74
74
|
- **Keep diagrams small enough to read inline** but detailed enough to be useful when expanded.
|
|
75
|
+
- **Mermaid `securityLevel` must be `"strict"`.** Using `"loose"` causes Mermaid to scan the entire page DOM for diagram content, which produces "Syntax error in text" errors in the footer of every page. Always use `"strict"` in the VitePress mermaid config.
|
|
75
76
|
|
|
76
77
|
### Always Use FullscreenDiagram
|
|
77
78
|
|
|
@@ -16,6 +16,9 @@ You are working with a VitePress documentation site. Follow these patterns.
|
|
|
16
16
|
- Keep diagrams focused — one concept per diagram
|
|
17
17
|
- Use `flowchart TD` for top-down flows, `flowchart LR` for left-right
|
|
18
18
|
- Use `classDiagram` for type relationships, `sequenceDiagram` for interactions
|
|
19
|
+
- **Set `securityLevel: "strict"` in the mermaid config.** Using `"loose"` causes Mermaid v10+ to scan the entire page DOM, producing "Syntax error in text" errors on every page.
|
|
20
|
+
- **Do not use `style`, `classDef`, or `themeVariables` with hardcoded colors.** The `vitepress-plugin-mermaid` auto-switches between `default` (light) and `dark` themes. Hardcoded colors break in the opposite mode. Use `subgraph` for visual grouping instead.
|
|
21
|
+
- **Set `theme: "default"` in the mermaid config.** The plugin overrides to `"dark"` automatically when VitePress dark mode is active. Do not set `theme: "dark"` or `theme: "base"` — they interfere with the auto-switching.
|
|
19
22
|
|
|
20
23
|
## Sidebar & Navigation
|
|
21
24
|
|