specweave 0.30.12 → 0.30.14

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 (127) hide show
  1. package/.claude-plugin/marketplace.json +0 -11
  2. package/CLAUDE.md +1 -1
  3. package/bin/fix-marketplace-errors.sh +1 -1
  4. package/dist/src/cli/commands/init.d.ts.map +1 -1
  5. package/dist/src/cli/commands/init.js +13 -0
  6. package/dist/src/cli/commands/init.js.map +1 -1
  7. package/dist/src/cli/helpers/ado-area-selector.d.ts.map +1 -1
  8. package/dist/src/cli/helpers/ado-area-selector.js +13 -0
  9. package/dist/src/cli/helpers/ado-area-selector.js.map +1 -1
  10. package/dist/src/cli/helpers/issue-tracker/index.d.ts.map +1 -1
  11. package/dist/src/cli/helpers/issue-tracker/index.js +7 -2
  12. package/dist/src/cli/helpers/issue-tracker/index.js.map +1 -1
  13. package/dist/src/cli/helpers/issue-tracker/sync-config-writer.d.ts +7 -0
  14. package/dist/src/cli/helpers/issue-tracker/sync-config-writer.d.ts.map +1 -1
  15. package/dist/src/cli/helpers/issue-tracker/sync-config-writer.js +33 -2
  16. package/dist/src/cli/helpers/issue-tracker/sync-config-writer.js.map +1 -1
  17. package/dist/src/cli/workers/clone-worker.js +19 -3
  18. package/dist/src/cli/workers/clone-worker.js.map +1 -1
  19. package/dist/src/core/living-docs/board-matcher.d.ts +120 -0
  20. package/dist/src/core/living-docs/board-matcher.d.ts.map +1 -0
  21. package/dist/src/core/living-docs/board-matcher.js +466 -0
  22. package/dist/src/core/living-docs/board-matcher.js.map +1 -0
  23. package/dist/src/core/living-docs/foundation-builder.js +1 -1
  24. package/dist/src/core/living-docs/foundation-builder.js.map +1 -1
  25. package/dist/src/core/living-docs/living-docs-sync.d.ts +19 -8
  26. package/dist/src/core/living-docs/living-docs-sync.d.ts.map +1 -1
  27. package/dist/src/core/living-docs/living-docs-sync.js +148 -52
  28. package/dist/src/core/living-docs/living-docs-sync.js.map +1 -1
  29. package/dist/src/core/living-docs/suggestions-generator.js +1 -1
  30. package/dist/src/core/living-docs/suggestions-generator.js.map +1 -1
  31. package/dist/src/core/living-docs/umbrella-detector.d.ts +4 -0
  32. package/dist/src/core/living-docs/umbrella-detector.d.ts.map +1 -1
  33. package/dist/src/core/living-docs/umbrella-detector.js +20 -1
  34. package/dist/src/core/living-docs/umbrella-detector.js.map +1 -1
  35. package/dist/src/core/living-docs/workitem-matcher.js +5 -5
  36. package/dist/src/core/living-docs/workitem-matcher.js.map +1 -1
  37. package/dist/src/importers/item-converter.d.ts +4 -0
  38. package/dist/src/importers/item-converter.d.ts.map +1 -1
  39. package/dist/src/importers/item-converter.js +4 -0
  40. package/dist/src/importers/item-converter.js.map +1 -1
  41. package/dist/src/init/repo/types.d.ts +1 -1
  42. package/dist/src/living-docs/enterprise-analyzer.d.ts.map +1 -1
  43. package/dist/src/living-docs/enterprise-analyzer.js +70 -19
  44. package/dist/src/living-docs/enterprise-analyzer.js.map +1 -1
  45. package/dist/src/living-docs/epic-id-allocator.d.ts +4 -0
  46. package/dist/src/living-docs/epic-id-allocator.d.ts.map +1 -1
  47. package/dist/src/living-docs/epic-id-allocator.js +4 -0
  48. package/dist/src/living-docs/epic-id-allocator.js.map +1 -1
  49. package/dist/src/living-docs/fs-id-allocator.d.ts +4 -0
  50. package/dist/src/living-docs/fs-id-allocator.d.ts.map +1 -1
  51. package/dist/src/living-docs/fs-id-allocator.js +4 -0
  52. package/dist/src/living-docs/fs-id-allocator.js.map +1 -1
  53. package/dist/src/living-docs/smart-doc-organizer.d.ts +114 -0
  54. package/dist/src/living-docs/smart-doc-organizer.d.ts.map +1 -0
  55. package/dist/src/living-docs/smart-doc-organizer.js +535 -0
  56. package/dist/src/living-docs/smart-doc-organizer.js.map +1 -0
  57. package/package.json +13 -13
  58. package/plugins/PLUGINS-INDEX.md +2 -3
  59. package/plugins/specweave/commands/specweave-judge.md +265 -0
  60. package/plugins/specweave/commands/specweave-organize-docs.md +185 -0
  61. package/plugins/specweave/hooks/hooks.json +3 -3
  62. package/plugins/specweave/hooks/universal/hook-wrapper.cmd +26 -0
  63. package/plugins/specweave/hooks/universal/hook-wrapper.sh +67 -0
  64. package/plugins/specweave-ado/commands/{specweave-ado-close-workitem.md → close.md} +9 -5
  65. package/plugins/specweave-ado/commands/{specweave-ado-create-workitem.md → create.md} +9 -5
  66. package/plugins/specweave-ado/commands/pull.md +459 -0
  67. package/plugins/specweave-ado/commands/push.md +361 -0
  68. package/plugins/specweave-ado/commands/{specweave-ado-status.md → status.md} +12 -0
  69. package/plugins/specweave-ado/commands/{specweave-ado-sync.md → sync.md} +64 -3
  70. package/plugins/specweave-ado/hooks/README.md +1 -1
  71. package/plugins/specweave-docs/commands/build.md +158 -0
  72. package/plugins/specweave-docs/commands/{docs-generate.md → generate.md} +10 -5
  73. package/plugins/specweave-docs/commands/health.md +268 -0
  74. package/plugins/specweave-docs/commands/{docs-init.md → init.md} +11 -6
  75. package/plugins/specweave-docs/commands/organize.md +184 -0
  76. package/plugins/specweave-docs/commands/preview.md +138 -0
  77. package/plugins/specweave-docs/skills/preview/SKILL.md +105 -0
  78. package/plugins/specweave-github/agents/user-story-updater/AGENT.md +1 -1
  79. package/plugins/specweave-github/commands/{specweave-github-close-issue.md → close.md} +2 -2
  80. package/plugins/specweave-github/commands/{specweave-github-create-issue.md → create.md} +2 -2
  81. package/plugins/specweave-github/commands/pull.md +142 -0
  82. package/plugins/specweave-github/commands/push.md +154 -0
  83. package/plugins/specweave-github/commands/{specweave-github-sync.md → sync.md} +19 -5
  84. package/plugins/specweave-github/commands/{specweave-github-update-user-story.md → update-user-story.md} +1 -1
  85. package/plugins/specweave-github/hooks/README.md +1 -1
  86. package/plugins/specweave-jira/commands/pull.md +164 -0
  87. package/plugins/specweave-jira/commands/push.md +170 -0
  88. package/plugins/specweave-jira/commands/{specweave-jira-sync.md → sync.md} +18 -3
  89. package/plugins/specweave-jira/hooks/README.md +1 -1
  90. package/plugins/specweave-kafka/README.md +20 -0
  91. package/plugins/specweave-kafka/benchmarks/kafka-throughput.benchmark.ts +551 -0
  92. package/plugins/specweave-kafka/examples/README.md +191 -0
  93. package/plugins/specweave-kafka/examples/avro-schema-registry/.env.example +8 -0
  94. package/plugins/specweave-kafka/examples/avro-schema-registry/README.md +69 -0
  95. package/plugins/specweave-kafka/examples/avro-schema-registry/consumer.js +37 -0
  96. package/plugins/specweave-kafka/examples/avro-schema-registry/package.json +14 -0
  97. package/plugins/specweave-kafka/examples/avro-schema-registry/producer.js +57 -0
  98. package/plugins/specweave-kafka/examples/exactly-once-semantics/.env.example +5 -0
  99. package/plugins/specweave-kafka/examples/exactly-once-semantics/README.md +30 -0
  100. package/plugins/specweave-kafka/examples/exactly-once-semantics/eos-pipeline.js +79 -0
  101. package/plugins/specweave-kafka/examples/exactly-once-semantics/package.json +11 -0
  102. package/plugins/specweave-kafka/examples/kafka-streams-app/.env.example +4 -0
  103. package/plugins/specweave-kafka/examples/kafka-streams-app/README.md +30 -0
  104. package/plugins/specweave-kafka/examples/kafka-streams-app/package.json +11 -0
  105. package/plugins/specweave-kafka/examples/kafka-streams-app/windowed-aggregation.js +66 -0
  106. package/plugins/specweave-kafka/examples/n8n-workflow/README.md +54 -0
  107. package/plugins/specweave-kafka/examples/n8n-workflow/docker-compose.yml +19 -0
  108. package/plugins/specweave-kafka/examples/n8n-workflow/kafka-to-slack.json +50 -0
  109. package/plugins/specweave-kafka/examples/simple-producer-consumer/.env.example +15 -0
  110. package/plugins/specweave-kafka/examples/simple-producer-consumer/README.md +183 -0
  111. package/plugins/specweave-kafka/examples/simple-producer-consumer/consumer.js +60 -0
  112. package/plugins/specweave-kafka/examples/simple-producer-consumer/docker-compose.yml +30 -0
  113. package/plugins/specweave-kafka/examples/simple-producer-consumer/package.json +18 -0
  114. package/plugins/specweave-kafka/examples/simple-producer-consumer/producer.js +52 -0
  115. package/plugins/specweave-release/commands/specweave-release-npm.md +26 -239
  116. package/plugins/specweave-docs-preview/.claude-plugin/plugin.json +0 -21
  117. package/plugins/specweave-docs-preview/commands/build.md +0 -489
  118. package/plugins/specweave-docs-preview/commands/preview.md +0 -355
  119. package/plugins/specweave-docs-preview/skills/docs-preview/SKILL.md +0 -386
  120. /package/plugins/specweave-ado/commands/{specweave-ado-clone-repos.md → clone.md} +0 -0
  121. /package/plugins/specweave-ado/commands/{specweave-ado-import-areas.md → import-areas.md} +0 -0
  122. /package/plugins/specweave-ado/commands/{specweave-ado-import-projects.md → import-projects.md} +0 -0
  123. /package/plugins/specweave-github/commands/{specweave-github-cleanup-duplicates.md → cleanup-duplicates.md} +0 -0
  124. /package/plugins/specweave-github/commands/{specweave-github-reconcile.md → reconcile.md} +0 -0
  125. /package/plugins/specweave-github/commands/{specweave-github-status.md → status.md} +0 -0
  126. /package/plugins/specweave-jira/commands/{specweave-jira-import-boards.md → import-boards.md} +0 -0
  127. /package/plugins/specweave-jira/commands/{specweave-jira-import-projects.md → import-projects-full.md} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"smart-doc-organizer.js","sourceRoot":"","sources":["../../../src/living-docs/smart-doc-organizer.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "specweave",
3
- "version": "0.30.12",
3
+ "version": "0.30.14",
4
4
  "description": "Spec-driven development framework for Claude Code. AI-native workflow with living documentation, intelligent agents, and multilingual support (9 languages). Enterprise-grade traceability with permanent specs and temporary increments.",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -11,9 +11,9 @@
11
11
  "clean": "rm -rf dist/",
12
12
  "build": "tsc && npm run copy:locales && npm run copy:plugins && npm run copy:hook-deps",
13
13
  "rebuild": "npm run clean && npm run build",
14
- "copy:locales": "node scripts/copy-locales.js",
15
- "copy:plugins": "node scripts/copy-plugin-js.js",
16
- "copy:hook-deps": "node scripts/copy-hook-dependencies.js",
14
+ "copy:locales": "node scripts/build/copy-locales.js",
15
+ "copy:plugins": "node scripts/build/copy-plugin-js.js",
16
+ "copy:hook-deps": "node scripts/build/copy-hook-dependencies.js",
17
17
  "dev": "tsc --watch",
18
18
  "prepare": "npm run build",
19
19
  "prepublishOnly": "npm run rebuild",
@@ -25,21 +25,21 @@
25
25
  "test:coverage": "vitest run --coverage",
26
26
  "test": "npm run test:smoke",
27
27
  "benchmark": "ts-node tests/performance/run-all-benchmarks.ts",
28
- "validate:plugins": "node scripts/validate-plugin-manifests.cjs",
29
- "validate:platforms": "npx ts-node scripts/validate-platforms.ts",
28
+ "validate:plugins": "node scripts/validation/validate-plugin-manifests.cjs",
29
+ "validate:platforms": "npx ts-node scripts/validation/validate-platforms.ts",
30
30
  "metrics:dora": "node dist/src/metrics/dora-calculator.js",
31
- "migrate:copy-sync": "node scripts/migrate-to-copy-based-sync.js",
32
- "generate:diagrams": "bash scripts/generate-diagram-svgs.sh",
31
+ "migrate:copy-sync": "node scripts/migrations/migrate-to-copy-based-sync.js",
32
+ "generate:diagrams": "bash scripts/generation/generate-diagram-svgs.sh",
33
33
  "docs:dev": "cd docs-site && npm start",
34
34
  "docs:build": "cd docs-site && npm run build",
35
35
  "docs:install": "cd docs-site && npm install --legacy-peer-deps",
36
36
  "docs:internal": "cd docs-site && npm run start:internal",
37
37
  "docs:internal:build": "cd docs-site && npm run build:internal",
38
- "release:patch": "bash scripts/bump-version.sh patch",
39
- "release:minor": "bash scripts/bump-version.sh minor",
40
- "release:major": "bash scripts/bump-version.sh major",
41
- "release": "bash scripts/bump-version.sh",
42
- "setup:hooks": "bash scripts/install-git-hooks.sh"
38
+ "release:patch": "bash scripts/build/bump-version.sh patch",
39
+ "release:minor": "bash scripts/build/bump-version.sh minor",
40
+ "release:major": "bash scripts/build/bump-version.sh major",
41
+ "release": "bash scripts/build/bump-version.sh",
42
+ "setup:hooks": "bash scripts/hooks/install-git-hooks.sh"
43
43
  },
44
44
  "keywords": [
45
45
  "specweave",
@@ -2,7 +2,7 @@
2
2
 
3
3
  **Purpose**: Lightweight plugin manifest for progressive disclosure. Load plugin content only when triggers match.
4
4
 
5
- **Total Plugins**: 27 | **Last Updated**: 2025-11-24
5
+ **Total Plugins**: 26 | **Last Updated**: 2025-12-04
6
6
 
7
7
  ---
8
8
 
@@ -71,8 +71,7 @@
71
71
 
72
72
  | Plugin | Triggers | Description |
73
73
  |--------|----------|-------------|
74
- | **specweave-docs** | documentation, README, API docs, technical writing | Documentation generation |
75
- | **specweave-docs-preview** | docs site, Docusaurus, preview, build docs | Documentation preview server |
74
+ | **specweave-docs** | documentation, README, API docs, technical writing, docs site, Docusaurus, preview, build docs | Documentation generation and preview |
76
75
  | **specweave-release** | release, version, npm publish, changelog, RC | Release management |
77
76
 
78
77
  ## Specialized Plugins
@@ -0,0 +1,265 @@
1
+ ---
2
+ name: specweave:judge
3
+ description: Validate completed work using LLM-as-Judge pattern. Works on any files, not just increments.
4
+ ---
5
+
6
+ # /specweave:judge - Work Validation via Judge LLM
7
+
8
+ Validate any completed work using the LLM-as-Judge pattern with deep reasoning.
9
+
10
+ ## Purpose
11
+
12
+ Use when you've completed work (files, git changes, any code) and want AI-powered validation:
13
+ - Works on **any files** (not just SpecWeave increments)
14
+ - Uses **chain-of-thought reasoning** for thorough analysis
15
+ - Returns **clear verdict** with detailed reasoning
16
+
17
+ ## Usage
18
+
19
+ ```bash
20
+ # Validate specific files
21
+ /specweave:judge src/file.ts
22
+ /specweave:judge "src/**/*.ts"
23
+
24
+ # Validate git changes
25
+ /specweave:judge --staged # Staged changes
26
+ /specweave:judge --last-commit # Last commit
27
+ /specweave:judge --diff main # Diff vs branch
28
+
29
+ # Validation modes
30
+ /specweave:judge src/file.ts --quick # Fast (~10s)
31
+ /specweave:judge src/file.ts --deep # Thorough (~60s)
32
+ /specweave:judge src/file.ts --strict # Fail on any concern
33
+
34
+ # Additional options
35
+ /specweave:judge src/file.ts --fix # Include fix suggestions
36
+ /specweave:judge src/file.ts --export # Export report to markdown
37
+ ```
38
+
39
+ ## How It Works
40
+
41
+ When you invoke `/specweave:judge`, Claude will:
42
+
43
+ ### Step 1: Gather Input
44
+
45
+ Determine what to validate:
46
+ - If file paths provided → read those files
47
+ - If `--staged` → get staged git changes
48
+ - If `--last-commit` → get files from last commit
49
+ - If `--diff <branch>` → get diff against branch
50
+
51
+ ### Step 2: Analyze with Judge LLM Pattern
52
+
53
+ Use chain-of-thought reasoning to evaluate:
54
+
55
+ ```markdown
56
+ <thinking>
57
+ 1. **Read**: Understand what the code does
58
+ 2. **Analyze**: Check for issues across dimensions:
59
+ - Correctness: Does it work as intended?
60
+ - Completeness: Are edge cases handled?
61
+ - Security: Any vulnerabilities?
62
+ - Performance: Any obvious issues?
63
+ - Maintainability: Is it clean and clear?
64
+ 3. **Evaluate**: Weigh findings by severity
65
+ 4. **Decide**: Form verdict based on analysis
66
+ </thinking>
67
+ ```
68
+
69
+ ### Step 3: Return Verdict
70
+
71
+ ```
72
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
73
+ JUDGE VERDICT: APPROVED | CONCERNS | REJECTED
74
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
75
+
76
+ Confidence: 0.XX
77
+ Files Analyzed: N
78
+
79
+ REASONING:
80
+ [Chain-of-thought explanation of findings]
81
+
82
+ ISSUES (if any):
83
+ 🔴 CRITICAL: [title]
84
+ [description]
85
+ 📍 [file:line]
86
+ 💡 [suggestion]
87
+
88
+ 🟡 HIGH: [title]
89
+ ...
90
+
91
+ 🟢 LOW: [title]
92
+ ...
93
+
94
+ VERDICT: [summary sentence]
95
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
96
+ ```
97
+
98
+ ## Verdict Meanings
99
+
100
+ | Verdict | Meaning | Action |
101
+ |---------|---------|--------|
102
+ | **APPROVED** | Work looks good, no significant issues | Safe to proceed |
103
+ | **CONCERNS** | Some issues found, worth addressing | Review and fix if time permits |
104
+ | **REJECTED** | Critical issues found | Must fix before proceeding |
105
+
106
+ ## Validation Modes
107
+
108
+ ### Quick Mode (`--quick`)
109
+ - Fast validation (~10 seconds)
110
+ - Focuses on obvious issues
111
+ - Good for frequent checks during development
112
+ - Cost: ~$0.02-0.05
113
+
114
+ ### Default Mode
115
+ - Balanced validation (~30 seconds)
116
+ - Thorough analysis of all dimensions
117
+ - Good for pre-commit validation
118
+ - Cost: ~$0.05-0.10
119
+
120
+ ### Deep Mode (`--deep`)
121
+ - Most thorough validation (~60 seconds)
122
+ - Extended thinking for complex reasoning
123
+ - Good for critical code or security review
124
+ - Cost: ~$0.10-0.20
125
+
126
+ ### Strict Mode (`--strict`)
127
+ - Any concern results in REJECTED
128
+ - Use for critical paths, security code, or CI gates
129
+
130
+ ## Examples
131
+
132
+ ### Example 1: Validate a new feature
133
+
134
+ ```
135
+ User: /specweave:judge src/core/auth/login.ts
136
+
137
+ Claude:
138
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
139
+ JUDGE VERDICT: APPROVED
140
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
141
+
142
+ Confidence: 0.85
143
+ Files Analyzed: 1
144
+
145
+ REASONING:
146
+ The login implementation follows security best practices:
147
+ - Password hashing uses bcrypt with appropriate cost factor
148
+ - Rate limiting is implemented (5 attempts, 15 min lockout)
149
+ - Input validation prevents injection attacks
150
+ - Error messages don't leak user existence
151
+
152
+ No critical or high-severity issues found.
153
+
154
+ VERDICT: Implementation is solid and ready for use.
155
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
156
+ ```
157
+
158
+ ### Example 2: Validate staged changes
159
+
160
+ ```
161
+ User: /specweave:judge --staged
162
+
163
+ Claude:
164
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
165
+ JUDGE VERDICT: CONCERNS
166
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
167
+
168
+ Confidence: 0.78
169
+ Files Analyzed: 3
170
+
171
+ REASONING:
172
+ Changes add new API endpoint but have some issues:
173
+ - Missing input validation on user-provided data
174
+ - Error messages could leak internal paths
175
+ - No rate limiting on new endpoint
176
+
177
+ 🟡 HIGH: Missing Input Validation
178
+ User input passed directly to database query
179
+ 📍 src/api/users.ts:45
180
+ 💡 Add Zod schema validation before processing
181
+
182
+ 🟡 HIGH: Information Disclosure
183
+ Stack traces exposed in error responses
184
+ 📍 src/api/users.ts:62
185
+ 💡 Use production error handler that sanitizes output
186
+
187
+ VERDICT: Address the input validation before merging.
188
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
189
+ ```
190
+
191
+ ### Example 3: Deep validation with fixes
192
+
193
+ ```
194
+ User: /specweave:judge src/payments/checkout.ts --deep --fix
195
+
196
+ Claude:
197
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
198
+ JUDGE VERDICT: REJECTED
199
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
200
+
201
+ Confidence: 0.92
202
+ Files Analyzed: 1
203
+
204
+ REASONING:
205
+ Critical security issue found in payment processing:
206
+ - API key hardcoded in source file
207
+ - No HTTPS enforcement for payment requests
208
+ - Missing idempotency key handling
209
+
210
+ 🔴 CRITICAL: Hardcoded API Key
211
+ Stripe API key exposed in source code
212
+ 📍 src/payments/checkout.ts:12
213
+ 💡 Move to environment variable:
214
+ ```typescript
215
+ // Before (INSECURE)
216
+ const stripe = new Stripe('sk_live_xxx...');
217
+
218
+ // After (SECURE)
219
+ const stripe = new Stripe(process.env.STRIPE_SECRET_KEY!);
220
+ ```
221
+
222
+ 🔴 CRITICAL: No HTTPS Enforcement
223
+ Payment requests may go over HTTP
224
+ 📍 src/payments/checkout.ts:34
225
+ 💡 Add protocol check:
226
+ ```typescript
227
+ if (process.env.NODE_ENV === 'production' && !req.secure) {
228
+ return res.status(403).json({ error: 'HTTPS required' });
229
+ }
230
+ ```
231
+
232
+ VERDICT: MUST FIX before deployment - security critical.
233
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
234
+ ```
235
+
236
+ ## Difference from /specweave:qa
237
+
238
+ | Aspect | `/specweave:qa` | `/specweave:judge` |
239
+ |--------|-----------------|-------------------|
240
+ | **Scope** | Increments only | Any files |
241
+ | **Input** | Increment ID | Files, git diff |
242
+ | **Pattern** | 7-dimension scoring | Judge LLM reasoning |
243
+ | **Focus** | Spec quality, risks | Code correctness |
244
+ | **When** | Before increment close | After any work |
245
+
246
+ ## Best Practices
247
+
248
+ 1. **Use frequently**: Run during development, not just at the end
249
+ 2. **Use `--staged`**: Validate before committing
250
+ 3. **Use `--strict` for critical code**: Payment, auth, security
251
+ 4. **Fix CRITICAL issues immediately**: Never ignore these
252
+ 5. **Address CONCERNS before release**: They matter
253
+
254
+ ## Limitations
255
+
256
+ - ❌ Doesn't execute tests (use test runners)
257
+ - ❌ Doesn't auto-apply fixes (only suggests)
258
+ - ❌ May miss domain-specific issues
259
+ - ❌ Not a replacement for human review
260
+
261
+ ## Related
262
+
263
+ - `/specweave:qa` - Increment-bound quality assessment
264
+ - `/specweave-core:code-review` - Prompt-based code review
265
+ - `ado-sync-judge` agent - Uses judge pattern for sync validation
@@ -0,0 +1,185 @@
1
+ ---
2
+ name: specweave:organize-docs
3
+ description: Smart documentation organization - generates themed navigation indexes for large folders. Works seamlessly with Docusaurus preview.
4
+ ---
5
+
6
+ # Smart Documentation Organizer
7
+
8
+ Automatically organize large documentation folders by detecting themes and generating navigable category indexes.
9
+
10
+ ## Why Organize?
11
+
12
+ When folders grow beyond 30+ files, navigation becomes painful:
13
+ - ADRs (147 files) - hard to find sync vs hooks vs testing decisions
14
+ - Specs - many features across different domains
15
+ - Guides - mixed topics without clear structure
16
+
17
+ **Solution**: Generate themed category indexes WITHOUT moving files (preserves URLs).
18
+
19
+ ## Usage
20
+
21
+ ```bash
22
+ # Analyze and organize all internal docs
23
+ /specweave:organize-docs
24
+
25
+ # Analyze specific folder only
26
+ /specweave:organize-docs --folder architecture/adr
27
+
28
+ # Preview without generating files
29
+ /specweave:organize-docs --dry-run
30
+
31
+ # Force regeneration even if under threshold
32
+ /specweave:organize-docs --force
33
+
34
+ # Set custom threshold (default: 30)
35
+ /specweave:organize-docs --threshold 20
36
+ ```
37
+
38
+ ## Your Task
39
+
40
+ Execute the smart documentation organizer:
41
+
42
+ ```typescript
43
+ import { SmartDocOrganizer, organizeDocumentation } from '../../src/living-docs/smart-doc-organizer.js';
44
+ import * as path from 'path';
45
+
46
+ const projectPath = process.cwd();
47
+
48
+ // Option 1: Quick organize all internal docs
49
+ const result = await organizeDocumentation(projectPath, {
50
+ dryRun: false, // Set true to preview
51
+ thresholdForOrganization: 30,
52
+ });
53
+
54
+ console.log(result.summary);
55
+
56
+ // Option 2: Analyze specific folder
57
+ const organizer = new SmartDocOrganizer({
58
+ projectPath,
59
+ thresholdForOrganization: 30,
60
+ generateIndexes: true,
61
+ dryRun: false,
62
+ });
63
+
64
+ const adrPath = path.join(projectPath, '.specweave/docs/internal/architecture/adr');
65
+ const plan = await organizer.analyzeFolder(adrPath);
66
+
67
+ console.log(`
68
+ 📊 DOCUMENTATION ANALYSIS
69
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
70
+
71
+ Folder: ${plan.folder}
72
+ Total Files: ${plan.totalFiles}
73
+ Needs Organization: ${plan.needsOrganization ? '✅ Yes' : '❌ No'}
74
+
75
+ Theme Categories:
76
+ ${plan.themeCategories
77
+ .filter(c => c.count >= 3)
78
+ .map(c => ` ${c.theme.icon} ${c.theme.name}: ${c.count} files`)
79
+ .join('\n')}
80
+
81
+ Uncategorized: ${plan.uncategorized.length} files
82
+ `);
83
+
84
+ // Generate indexes if needed
85
+ if (plan.needsOrganization) {
86
+ const generatedFiles = await organizer.generateCategoryIndexes(plan);
87
+ console.log(`\n✅ Generated ${generatedFiles.length} index files`);
88
+ }
89
+ ```
90
+
91
+ ## What Gets Generated
92
+
93
+ ### 1. Category Index (`_categories.md`)
94
+
95
+ Main navigation hub with:
96
+ - Links to all theme categories
97
+ - Quick stats (total docs, categorized count)
98
+ - Recently updated documents
99
+
100
+ ### 2. Theme Indexes (`_index-{theme}.md`)
101
+
102
+ Per-theme navigation with:
103
+ - All files in that category
104
+ - Sub-grouping for large themes (15+ files)
105
+ - Sorted alphabetically
106
+
107
+ ### Theme Detection
108
+
109
+ The organizer automatically detects these themes:
110
+
111
+ | Theme | Keywords | Icon |
112
+ |-------|----------|------|
113
+ | Synchronization | sync, integration, bidirectional | 🔄 |
114
+ | Hooks & Events | hook, event, trigger, callback | 🪝 |
115
+ | GitHub | github, issue, pull-request, actions | 🐙 |
116
+ | External Tools | jira, ado, azure-devops, area-path | 🔌 |
117
+ | Testing | test, fixture, mock, coverage, tdd | 🧪 |
118
+ | Brownfield | brownfield, migration, legacy | 🏗️ |
119
+ | Architecture | pattern, factory, abstraction | 🏛️ |
120
+ | Performance | cache, pagination, batch, lazy | ⚡ |
121
+ | Security | permission, auth, token, secret | 🔒 |
122
+ | Increments | increment, status, lifecycle | 📦 |
123
+ | Configuration | config, env, setup, init | ⚙️ |
124
+ | Documentation | doc, living, spec, naming | 📚 |
125
+
126
+ ## Output Example
127
+
128
+ ```
129
+ 📊 DOCUMENTATION ANALYSIS
130
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
131
+
132
+ Folder: architecture/adr
133
+ Total Files: 147
134
+ Needs Organization: ✅ Yes
135
+
136
+ Theme Categories:
137
+ 🔄 Synchronization & Integration: 23 files
138
+ 🐙 GitHub Integration: 18 files
139
+ 🪝 Hooks & Events: 15 files
140
+ 🧪 Testing & Quality: 12 files
141
+ 🔌 External Tools (ADO, JIRA): 11 files
142
+ 📦 Increment Lifecycle: 10 files
143
+ ⚡ Performance & Optimization: 9 files
144
+ ⚙️ Configuration & Setup: 8 files
145
+
146
+ Uncategorized: 14 files
147
+
148
+ ✅ Generated 9 index files:
149
+ - _categories.md
150
+ - _index-sync.md
151
+ - _index-github.md
152
+ - _index-hooks.md
153
+ - _index-testing.md
154
+ - _index-external-tools.md
155
+ - _index-increments.md
156
+ - _index-performance.md
157
+ - _index-config.md
158
+ ```
159
+
160
+ ## Docusaurus Integration
161
+
162
+ After running this command, use:
163
+
164
+ ```bash
165
+ /specweave-docs:preview
166
+ ```
167
+
168
+ The generated indexes will appear in the sidebar:
169
+ - **📚 Browse by Category** - main hub
170
+ - **🔄 Synchronization & Integration** - themed section
171
+ - **🐙 GitHub Integration** - themed section
172
+ - etc.
173
+
174
+ ## Best Practices
175
+
176
+ 1. **Run periodically** - As docs grow, re-run to update indexes
177
+ 2. **Review uncategorized** - Files without themes may need better naming
178
+ 3. **Check Docusaurus** - Preview after organizing to verify navigation
179
+ 4. **Don't move files** - Indexes are virtual, original URLs preserved
180
+
181
+ ## Related Commands
182
+
183
+ - `/specweave-docs:preview` - Preview documentation with Docusaurus
184
+ - `/specweave-docs:build` - Build static documentation site
185
+ - Enterprise health report - Includes organization recommendations
@@ -5,7 +5,7 @@
5
5
  "hooks": [
6
6
  {
7
7
  "type": "command",
8
- "command": "node \"${CLAUDE_PLUGIN_ROOT}/hooks/universal/dispatcher.mjs\" session-start"
8
+ "command": "bash -c 'F=\"${CLAUDE_PLUGIN_ROOT}/hooks/universal/dispatcher.mjs\"; [ -f \"$F\" ] && node \"$F\" session-start || printf \"{\\\"continue\\\":true}\"' 2>/dev/null || printf '{\"continue\":true}'"
9
9
  }
10
10
  ]
11
11
  }
@@ -17,7 +17,7 @@
17
17
  "hooks": [
18
18
  {
19
19
  "type": "command",
20
- "command": "node \"${CLAUDE_PLUGIN_ROOT}/hooks/universal/dispatcher.mjs\" completion-guard"
20
+ "command": "bash -c 'F=\"${CLAUDE_PLUGIN_ROOT}/hooks/universal/dispatcher.mjs\"; [ -f \"$F\" ] && node \"$F\" completion-guard || printf \"{\\\"continue\\\":true}\"' 2>/dev/null || printf '{\"continue\":true}'"
21
21
  }
22
22
  ]
23
23
  }
@@ -29,7 +29,7 @@
29
29
  "hooks": [
30
30
  {
31
31
  "type": "command",
32
- "command": "node \"${CLAUDE_PLUGIN_ROOT}/hooks/universal/dispatcher.mjs\" post-tool-use"
32
+ "command": "bash -c 'F=\"${CLAUDE_PLUGIN_ROOT}/hooks/universal/dispatcher.mjs\"; [ -f \"$F\" ] && node \"$F\" post-tool-use || printf \"{\\\"continue\\\":true}\"' 2>/dev/null || printf '{\"continue\":true}'"
33
33
  }
34
34
  ]
35
35
  }
@@ -0,0 +1,26 @@
1
+ @echo off
2
+ REM hook-wrapper.cmd - Windows resilient hook launcher
3
+ REM Prevents crashes when dispatcher.mjs is temporarily unavailable
4
+
5
+ setlocal enabledelayedexpansion
6
+
7
+ set "HOOK_TYPE=%~1"
8
+ if "%HOOK_TYPE%"=="" set "HOOK_TYPE=unknown"
9
+
10
+ set "SCRIPT_DIR=%~dp0"
11
+ set "DISPATCHER=%SCRIPT_DIR%dispatcher.mjs"
12
+
13
+ REM Check if dispatcher exists
14
+ if not exist "%DISPATCHER%" (
15
+ echo {"continue":true,"systemMessage":"Hook skipped: dispatcher.mjs not found"}
16
+ exit /b 0
17
+ )
18
+
19
+ REM Run dispatcher with error suppression
20
+ node "%DISPATCHER%" "%HOOK_TYPE%" 2>nul
21
+ if errorlevel 1 (
22
+ echo {"continue":true,"systemMessage":"Hook error, continuing"}
23
+ exit /b 0
24
+ )
25
+
26
+ exit /b 0
@@ -0,0 +1,67 @@
1
+ #!/bin/bash
2
+ # hook-wrapper.sh - Resilient hook launcher that prevents crashes
3
+ #
4
+ # Problem: Node.js crashes with "Cannot find module" BEFORE any error handling
5
+ # when dispatcher.mjs is temporarily unavailable (e.g., during marketplace refresh)
6
+ #
7
+ # Solution: Pre-check file existence, retry with delay, output valid JSON on failure
8
+ #
9
+ # Usage: bash hook-wrapper.sh <hook-type>
10
+ # Where hook-type is: session-start, post-tool-use, completion-guard
11
+
12
+ set -e
13
+
14
+ HOOK_TYPE="${1:-unknown}"
15
+ SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
16
+ DISPATCHER="$SCRIPT_DIR/dispatcher.mjs"
17
+
18
+ # Maximum retry attempts for transient failures
19
+ MAX_RETRIES=3
20
+ RETRY_DELAY_MS=50
21
+
22
+ # Function to output valid JSON and exit gracefully
23
+ safe_exit() {
24
+ local msg="${1:-}"
25
+ if [[ -n "$msg" ]]; then
26
+ echo "{\"continue\":true,\"systemMessage\":\"Hook skipped: $msg\"}"
27
+ else
28
+ echo '{"continue":true}'
29
+ fi
30
+ exit 0
31
+ }
32
+
33
+ # Check if dispatcher exists with retry for transient failures
34
+ check_dispatcher() {
35
+ local attempt=1
36
+ while [[ $attempt -le $MAX_RETRIES ]]; do
37
+ if [[ -f "$DISPATCHER" ]]; then
38
+ return 0
39
+ fi
40
+
41
+ # Wait before retry (convert ms to seconds for sleep)
42
+ if [[ $attempt -lt $MAX_RETRIES ]]; then
43
+ sleep 0.$(printf '%03d' $RETRY_DELAY_MS)
44
+ fi
45
+
46
+ ((attempt++))
47
+ done
48
+
49
+ return 1
50
+ }
51
+
52
+ # Main execution
53
+ if ! check_dispatcher; then
54
+ safe_exit "dispatcher.mjs not found (marketplace may be refreshing)"
55
+ fi
56
+
57
+ # Execute dispatcher with timeout protection
58
+ if command -v timeout &>/dev/null; then
59
+ # GNU timeout available (Linux)
60
+ timeout 5s node "$DISPATCHER" "$HOOK_TYPE" 2>/dev/null || safe_exit "dispatcher timeout or error"
61
+ elif command -v gtimeout &>/dev/null; then
62
+ # GNU timeout via coreutils (macOS with brew)
63
+ gtimeout 5s node "$DISPATCHER" "$HOOK_TYPE" 2>/dev/null || safe_exit "dispatcher timeout or error"
64
+ else
65
+ # No timeout available, run directly
66
+ node "$DISPATCHER" "$HOOK_TYPE" 2>/dev/null || safe_exit "dispatcher error"
67
+ fi