specweave 0.26.13 → 0.26.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.
- package/dist/plugins/specweave-jira/lib/setup-wizard.js +1 -1
- package/dist/plugins/specweave-jira/lib/setup-wizard.js.map +1 -1
- package/dist/src/cli/commands/import-docs.js +2 -2
- package/dist/src/cli/commands/import-docs.js.map +1 -1
- package/dist/src/cli/commands/init.js +8 -8
- package/dist/src/cli/commands/init.js.map +1 -1
- package/dist/src/cli/commands/install.js +2 -2
- package/dist/src/cli/commands/install.js.map +1 -1
- package/dist/src/cli/helpers/ado-area-path-mapper.js +3 -3
- package/dist/src/cli/helpers/ado-area-path-mapper.js.map +1 -1
- package/dist/src/cli/helpers/github/profile-manager.js +1 -1
- package/dist/src/cli/helpers/github/profile-manager.js.map +1 -1
- package/dist/src/cli/helpers/github-repo-selector.js +3 -3
- package/dist/src/cli/helpers/github-repo-selector.js.map +1 -1
- package/dist/src/cli/helpers/import-strategy-prompter.js +1 -1
- package/dist/src/cli/helpers/import-strategy-prompter.js.map +1 -1
- package/dist/src/cli/helpers/issue-tracker/github-multi-repo.js +1 -1
- package/dist/src/cli/helpers/issue-tracker/github-multi-repo.js.map +1 -1
- package/dist/src/cli/helpers/issue-tracker/github.js +3 -3
- package/dist/src/cli/helpers/issue-tracker/github.js.map +1 -1
- package/dist/src/cli/helpers/issue-tracker/index.js +1 -1
- package/dist/src/cli/helpers/issue-tracker/index.js.map +1 -1
- package/dist/src/cli/helpers/issue-tracker/jira.js +1 -1
- package/dist/src/cli/helpers/issue-tracker/jira.js.map +1 -1
- package/dist/src/cli/helpers/smart-filter.js +1 -1
- package/dist/src/cli/helpers/smart-filter.js.map +1 -1
- package/dist/src/core/repo-structure/repo-bulk-discovery.js +2 -2
- package/dist/src/core/repo-structure/repo-bulk-discovery.js.map +1 -1
- package/dist/src/core/repo-structure/repo-structure-manager.js +10 -10
- package/dist/src/core/repo-structure/repo-structure-manager.js.map +1 -1
- package/dist/src/core/sync/bidirectional-engine.js +1 -1
- package/dist/src/core/sync/bidirectional-engine.js.map +1 -1
- package/dist/src/init/InitFlow.js +1 -1
- package/dist/src/init/InitFlow.js.map +1 -1
- package/dist/src/integrations/ado/area-path-mapper.js +1 -1
- package/dist/src/integrations/ado/area-path-mapper.js.map +1 -1
- package/dist/src/utils/external-resource-validator.js +4 -4
- package/dist/src/utils/external-resource-validator.js.map +1 -1
- package/package.json +1 -1
- package/plugins/PLUGINS-INDEX.md +120 -0
- package/plugins/specweave/commands/specweave-increment.md +1 -1
- package/plugins/specweave/commands/specweave-update-scope.md +2 -2
- package/plugins/specweave/hooks/post-user-story-complete.sh +86 -35
- package/plugins/specweave/lib/hooks/us-completion-orchestrator.js +62 -1
- package/plugins/specweave/lib/hooks/us-completion-orchestrator.ts +106 -3
- package/plugins/specweave/skills/SKILLS-INDEX.md +69 -225
- package/plugins/specweave-ado/commands/specweave-ado-import-projects.md +1 -1
- package/plugins/specweave-ado/lib/ado-multi-project-sync.js +0 -1
- package/plugins/specweave-ado/lib/project-selector.js +1 -1
- package/plugins/specweave-ado/lib/project-selector.ts +1 -1
- package/plugins/specweave-ado/skills/ado-resource-validator/SKILL.md +1 -1
- package/plugins/specweave-github/lib/repo-selector.js +1 -1
- package/plugins/specweave-github/lib/repo-selector.ts +1 -1
- package/plugins/specweave-jira/lib/enhanced-jira-sync.js +3 -3
- package/plugins/specweave-jira/lib/project-selector.js +1 -1
- package/plugins/specweave-jira/lib/project-selector.ts +1 -1
- package/plugins/specweave-jira/lib/setup-wizard.js +1 -1
- package/plugins/specweave-jira/lib/setup-wizard.ts +1 -1
- package/plugins/specweave/hooks/docs-changed.sh.backup +0 -79
- package/plugins/specweave/hooks/human-input-required.sh.backup +0 -75
- package/plugins/specweave/hooks/post-first-increment.sh.backup +0 -61
- package/plugins/specweave/hooks/post-increment-change.sh.backup +0 -98
- package/plugins/specweave/hooks/post-increment-completion.sh.backup +0 -231
- package/plugins/specweave/hooks/post-increment-planning.sh.backup +0 -1048
- package/plugins/specweave/hooks/post-increment-status-change.sh.backup +0 -147
- package/plugins/specweave/hooks/post-spec-update.sh.backup +0 -158
- package/plugins/specweave/hooks/post-user-story-complete.sh.backup +0 -179
- package/plugins/specweave/hooks/pre-command-deduplication.sh.backup +0 -83
- package/plugins/specweave/hooks/pre-implementation.sh.backup +0 -67
- package/plugins/specweave/hooks/pre-task-completion.sh.backup +0 -194
- package/plugins/specweave/hooks/pre-tool-use.sh.backup +0 -133
- package/plugins/specweave/hooks/user-prompt-submit.sh.backup +0 -386
- package/plugins/specweave-ado/hooks/post-living-docs-update.sh.backup +0 -353
- package/plugins/specweave-ado/hooks/post-task-completion.sh.backup +0 -172
- package/plugins/specweave-ado/lib/enhanced-ado-sync.js +0 -170
- package/plugins/specweave-github/hooks/.specweave/logs/hooks-debug.log +0 -1098
- package/plugins/specweave-github/hooks/post-task-completion.sh.backup +0 -258
- package/plugins/specweave-jira/hooks/post-task-completion.sh.backup +0 -172
- package/plugins/specweave-release/hooks/.specweave/logs/dora-tracking.log +0 -1008
- package/plugins/specweave-release/hooks/post-task-completion.sh.backup +0 -110
|
@@ -39,6 +39,88 @@ import { USCompletionDetector } from '../../../../dist/src/core/us-completion-de
|
|
|
39
39
|
import { LivingDocsSync } from '../../../../dist/src/core/living-docs/living-docs-sync.js';
|
|
40
40
|
import { USSyncThrottle } from '../../../../dist/src/core/us-sync-throttle.js';
|
|
41
41
|
import { consoleLogger } from '../vendor/utils/logger.js';
|
|
42
|
+
import { spawn } from 'child_process';
|
|
43
|
+
import { existsSync } from 'fs';
|
|
44
|
+
import * as path from 'path';
|
|
45
|
+
|
|
46
|
+
/**
|
|
47
|
+
* Trigger post-user-story-complete hook for external tool updates
|
|
48
|
+
*
|
|
49
|
+
* This bridges the orchestrator to the shell hook that handles:
|
|
50
|
+
* - GitHub issue closure with completion comment
|
|
51
|
+
* - JIRA story transition (if implemented)
|
|
52
|
+
* - ADO work item completion (if implemented)
|
|
53
|
+
*
|
|
54
|
+
* @param incrementId - Increment ID (e.g., "0059-context-optimization")
|
|
55
|
+
* @param usId - User story ID (e.g., "US-003")
|
|
56
|
+
* @param projectRoot - Project root path
|
|
57
|
+
*/
|
|
58
|
+
async function triggerUserStoryCompleteHook(
|
|
59
|
+
incrementId: string,
|
|
60
|
+
usId: string,
|
|
61
|
+
projectRoot: string
|
|
62
|
+
): Promise<void> {
|
|
63
|
+
// Find the hook in multiple possible locations
|
|
64
|
+
const hookPaths = [
|
|
65
|
+
path.join(projectRoot, 'plugins/specweave/hooks/post-user-story-complete.sh'),
|
|
66
|
+
path.join(projectRoot, '.claude/hooks/post-user-story-complete.sh'),
|
|
67
|
+
];
|
|
68
|
+
|
|
69
|
+
let hookPath: string | null = null;
|
|
70
|
+
for (const p of hookPaths) {
|
|
71
|
+
if (existsSync(p)) {
|
|
72
|
+
hookPath = p;
|
|
73
|
+
break;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
if (!hookPath) {
|
|
78
|
+
console.log(` ℹ️ post-user-story-complete.sh hook not found (skipping external sync)`);
|
|
79
|
+
return;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
return new Promise((resolve, reject) => {
|
|
83
|
+
// Call hook with spec-id and user-story-id as arguments
|
|
84
|
+
const hookProcess = spawn('bash', [hookPath, incrementId, usId], {
|
|
85
|
+
cwd: projectRoot,
|
|
86
|
+
env: {
|
|
87
|
+
...process.env,
|
|
88
|
+
SPECWEAVE_INCREMENT_ID: incrementId,
|
|
89
|
+
SPECWEAVE_USER_STORY_ID: usId,
|
|
90
|
+
},
|
|
91
|
+
stdio: ['ignore', 'pipe', 'pipe'],
|
|
92
|
+
});
|
|
93
|
+
|
|
94
|
+
let stdout = '';
|
|
95
|
+
let stderr = '';
|
|
96
|
+
|
|
97
|
+
hookProcess.stdout.on('data', (data) => {
|
|
98
|
+
stdout += data.toString();
|
|
99
|
+
});
|
|
100
|
+
|
|
101
|
+
hookProcess.stderr.on('data', (data) => {
|
|
102
|
+
stderr += data.toString();
|
|
103
|
+
});
|
|
104
|
+
|
|
105
|
+
hookProcess.on('close', (code) => {
|
|
106
|
+
if (code === 0) {
|
|
107
|
+
resolve();
|
|
108
|
+
} else {
|
|
109
|
+
reject(new Error(`Hook exited with code ${code}: ${stderr || stdout}`));
|
|
110
|
+
}
|
|
111
|
+
});
|
|
112
|
+
|
|
113
|
+
hookProcess.on('error', (error) => {
|
|
114
|
+
reject(new Error(`Hook spawn failed: ${error.message}`));
|
|
115
|
+
});
|
|
116
|
+
|
|
117
|
+
// Timeout after 30 seconds
|
|
118
|
+
setTimeout(() => {
|
|
119
|
+
hookProcess.kill('SIGTERM');
|
|
120
|
+
reject(new Error('Hook timed out after 30s'));
|
|
121
|
+
}, 30000);
|
|
122
|
+
});
|
|
123
|
+
}
|
|
42
124
|
|
|
43
125
|
export interface USSyncResult {
|
|
44
126
|
success: boolean;
|
|
@@ -146,9 +228,30 @@ export async function syncCompletedUserStories(incrementId: string): Promise<USS
|
|
|
146
228
|
console.log(` Feature: ${syncResult.featureId}`);
|
|
147
229
|
console.log(` Files updated: ${syncResult.filesCreated.length + syncResult.filesUpdated.length}`);
|
|
148
230
|
|
|
149
|
-
//
|
|
150
|
-
//
|
|
151
|
-
|
|
231
|
+
// ========================================================================
|
|
232
|
+
// EXTERNAL TOOL SYNC: Close issues for completed user stories (v0.26.15)
|
|
233
|
+
// ========================================================================
|
|
234
|
+
// livingDocsSync.syncIncrement() updates CONTENT but doesn't CLOSE issues.
|
|
235
|
+
// We need to explicitly trigger post-user-story-complete hook for each US.
|
|
236
|
+
//
|
|
237
|
+
// Flow:
|
|
238
|
+
// 1. For each newly completed US
|
|
239
|
+
// 2. Call post-user-story-complete.sh with spec-id and us-id
|
|
240
|
+
// 3. Hook handles: find issue, add completion comment, close issue
|
|
241
|
+
//
|
|
242
|
+
// Gate checks happen inside the hook based on config flags.
|
|
243
|
+
|
|
244
|
+
console.log(`\n📡 Triggering external tool updates for ${newlyCompleted.length} completed user stories...`);
|
|
245
|
+
|
|
246
|
+
for (const us of newlyCompleted) {
|
|
247
|
+
try {
|
|
248
|
+
await triggerUserStoryCompleteHook(incrementId, us.usId, projectRoot);
|
|
249
|
+
console.log(` ✅ ${us.usId}: External tool updated`);
|
|
250
|
+
} catch (hookError: any) {
|
|
251
|
+
// Non-blocking: Log but continue with next US
|
|
252
|
+
console.warn(` ⚠️ ${us.usId}: Hook failed (${hookError.message})`);
|
|
253
|
+
}
|
|
254
|
+
}
|
|
152
255
|
|
|
153
256
|
// Record successful sync for throttling
|
|
154
257
|
throttle.recordSync(incrementId);
|
|
@@ -1,256 +1,100 @@
|
|
|
1
1
|
# SpecWeave Skills Index
|
|
2
2
|
|
|
3
|
-
**Purpose**:
|
|
3
|
+
**Purpose**: Lightweight skill manifest for lazy loading. Load SKILL.md only when triggers match.
|
|
4
4
|
|
|
5
|
-
**Last Updated**: 2025-11-
|
|
6
|
-
|
|
7
|
-
**Total Skills**: 19
|
|
8
|
-
|
|
9
|
-
---
|
|
10
|
-
|
|
11
|
-
## 🚀 Quick Start (Progressive Disclosure)
|
|
12
|
-
|
|
13
|
-
**MANDATORY**: Skills are your expert manuals. Always check for relevant skills BEFORE starting implementation.
|
|
14
|
-
|
|
15
|
-
### Progressive Disclosure Pattern
|
|
16
|
-
|
|
17
|
-
1. **Scan this index** to find skills matching your task
|
|
18
|
-
2. **Match activation keywords** to your current request
|
|
19
|
-
3. **Load full SKILL.md** for matching skills
|
|
20
|
-
4. **Follow the workflow** in SKILL.md precisely
|
|
21
|
-
|
|
22
|
-
### Example Workflow
|
|
23
|
-
|
|
24
|
-
```
|
|
25
|
-
User asks: "Plan a new feature for user authentication"
|
|
26
|
-
|
|
27
|
-
Step 1: Scan this index → Find "increment-planner" skill
|
|
28
|
-
Step 2: Check keywords → Matches "feature planning", "create increment"
|
|
29
|
-
Step 3: Load skill → cat .claude/skills/increment-planner/SKILL.md
|
|
30
|
-
Step 4: Execute → Follow the increment planning workflow
|
|
31
|
-
```
|
|
32
|
-
|
|
33
|
-
---
|
|
34
|
-
|
|
35
|
-
## 📚 All Available Skills
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
### Framework Core
|
|
39
|
-
|
|
40
|
-
#### plugin-expert
|
|
41
|
-
|
|
42
|
-
**Description**: Expert knowledge of Claude Code's plugin system, marketplace management, and installation commands. Activates for plugin installation, marketplace setup, plugin troubleshooting, plugin commands. Keywords plugin install, plugin marketplace, claude code plugins, plugin management, plugin errors, marketplace add, plugin list.
|
|
43
|
-
|
|
44
|
-
**Activates for**: plugin installation, marketplace setup, plugin troubleshooting, plugin commands, plugin install, plugin marketplace
|
|
45
|
-
|
|
46
|
-
**Location**: `.claude/skills/plugin-expert/SKILL.md`
|
|
47
|
-
|
|
48
|
-
---
|
|
49
|
-
|
|
50
|
-
#### context-loader
|
|
51
|
-
|
|
52
|
-
**Description**: Explains how SpecWeave achieves context efficiency through Claude's native progressive disclosure mechanism and sub-agent parallelization. Skills load only when relevant, sub-agents isolate context. Activates when users ask about context loading, token usage, or how SpecWeave scales. Keywords: context loading, progressive disclosure, token efficiency, sub-agents, context management.
|
|
53
|
-
|
|
54
|
-
**Location**: `.claude/skills/context-loader/SKILL.md`
|
|
55
|
-
|
|
56
|
-
---
|
|
57
|
-
|
|
58
|
-
#### context-optimizer
|
|
59
|
-
|
|
60
|
-
**Description**: Second-pass context optimization that analyzes user prompts and removes irrelevant specs, agents, and skills from loaded context. Achieves 80%+ token reduction through smart cleanup. Activates for optimize context, reduce tokens, clean context, smart context, precision loading.
|
|
61
|
-
|
|
62
|
-
**Location**: `.claude/skills/context-optimizer/SKILL.md`
|
|
63
|
-
|
|
64
|
-
**Allowed tools**: Read, Grep, Glob
|
|
65
|
-
|
|
66
|
-
---
|
|
67
|
-
|
|
68
|
-
#### increment-planner
|
|
69
|
-
|
|
70
|
-
**Description**: Creates comprehensive implementation plans for SpecWeave increments (aka features - both terms are interchangeable). This skill should be used when planning new increments/features, creating specifications, or organizing implementation work. Activates for: increment planning, feature planning, implementation plan, create increment, create feature, plan increment, plan feature, organize work, break down increment, break down feature, new product, build project, MVP, SaaS, app development, product description, tech stack planning, feature list.
|
|
71
|
-
|
|
72
|
-
**Activates for**: increment planning, feature planning, implementation plan, create increment, create feature, plan increment, plan feature, organize work, break down increment, break down feature, new product, build project, MVP, SaaS, app development, product description, tech stack planning, feature list
|
|
73
|
-
|
|
74
|
-
**Location**: `.claude/skills/increment-planner/SKILL.md`
|
|
75
|
-
|
|
76
|
-
---
|
|
77
|
-
|
|
78
|
-
#### specweave-detector
|
|
79
|
-
|
|
80
|
-
**Description**: Detects SpecWeave context (.specweave/ directory exists) and provides workflow documentation. Explains available slash commands and workflow. Keywords slash commands, /specweave:increment, /increment, /specweave:do, /specweave:progress, /specweave:validate, /specweave:done, specweave commands, workflow help, specweave folder.
|
|
81
|
-
|
|
82
|
-
**Note**: Auto-detection of product descriptions is handled by the `project-kickstarter` skill.
|
|
83
|
-
|
|
84
|
-
**Location**: `.claude/skills/specweave-detector/SKILL.md`
|
|
85
|
-
|
|
86
|
-
---
|
|
87
|
-
|
|
88
|
-
#### specweave-framework
|
|
89
|
-
|
|
90
|
-
**Description**: Expert knowledge of SpecWeave framework structure, rules, conventions, and increment lifecycle. Deep understanding of source-of-truth discipline, increment naming, hook system, and plugin architecture. Activates for: specweave rules, how does specweave work, framework structure, increment lifecycle, what is specweave, specweave conventions, specweave discipline, specweave architecture, where do files go, source of truth, increment naming, tasks.md format, spec.md structure, living docs sync, hook system, plugin architecture, how to use specweave, specweave best practices.
|
|
91
|
-
|
|
92
|
-
**Activates for**: specweave rules, how does specweave work, framework structure, increment lifecycle, what is specweave, specweave conventions, specweave discipline, specweave architecture, where do files go, source of truth, increment naming, tasks
|
|
93
|
-
|
|
94
|
-
**Location**: `.claude/skills/specweave-framework/SKILL.md`
|
|
95
|
-
|
|
96
|
-
**Allowed tools**: Read, Grep, Glob
|
|
97
|
-
|
|
98
|
-
---
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
### Orchestration & Planning
|
|
102
|
-
|
|
103
|
-
#### role-orchestrator
|
|
104
|
-
|
|
105
|
-
**Description**: Multi-agent orchestration system that coordinates specialized agents (PM, Architect, DevOps, QA, Tech Lead, Security) to work together on complex tasks. Implements hierarchical orchestrator-worker pattern. Activates for complex multi-step requests requiring multiple roles/skills. Keywords: build product, create SaaS, full implementation, end-to-end, multi-agent, orchestrate, coordinate roles, complex project.
|
|
106
|
-
|
|
107
|
-
**Location**: `.claude/skills/role-orchestrator/SKILL.md`
|
|
108
|
-
|
|
109
|
-
---
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
### Quality & Testing
|
|
113
|
-
|
|
114
|
-
#### increment-quality-judge-v2
|
|
115
|
-
|
|
116
|
-
**Description**: Enhanced AI-powered quality assessment with RISK SCORING (Probability × Impact method) and quality gate decisions. Evaluates specifications, plans, and tests for clarity, testability, completeness, feasibility, maintainability, edge cases, and RISKS. Provides PASS/CONCERNS/FAIL decisions. Activates for validate quality, quality check, assess spec, evaluate increment, spec review, quality score, risk assessment, qa check, quality gate, /specweave:qa command.
|
|
117
|
-
|
|
118
|
-
**Activates for**: validate quality, quality check, assess spec, evaluate increment, spec review, quality score, risk assessment, qa check, quality gate
|
|
119
|
-
|
|
120
|
-
**Location**: `.claude/skills/increment-quality-judge-v2/SKILL.md`
|
|
121
|
-
|
|
122
|
-
**Allowed tools**: Read, Grep, Glob
|
|
123
|
-
|
|
124
|
-
**Special Note**: This exists as BOTH a skill and an agent:
|
|
125
|
-
- **Skill** (this file) → Provides documentation and reference material
|
|
126
|
-
- **Agent** (`plugins/specweave/agents/increment-quality-judge-v2/AGENT.md`) → Provides execution via Task tool
|
|
127
|
-
|
|
128
|
-
Use **Skill tool** or **/specweave:qa** slash command for quality assessments.
|
|
129
|
-
Use **Task tool** only when programmatically invoking from code (rare).
|
|
130
|
-
|
|
131
|
-
**Related**: `/specweave:qa` command, `qa-lead` agent
|
|
132
|
-
|
|
133
|
-
---
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
### Documentation
|
|
137
|
-
|
|
138
|
-
#### brownfield-analyzer
|
|
139
|
-
|
|
140
|
-
**Description**: Analyzes existing brownfield projects to map documentation structure to SpecWeave's PRD/HLD/Spec/Runbook pattern. Scans folders, classifies documents, detects external tools (Jira, ADO, GitHub), and generates migration plan. Activates for brownfield, existing project, migrate, analyze structure, legacy documentation.
|
|
141
|
-
|
|
142
|
-
**Location**: `.claude/skills/brownfield-analyzer/SKILL.md`
|
|
143
|
-
|
|
144
|
-
---
|
|
145
|
-
|
|
146
|
-
#### translator
|
|
147
|
-
|
|
148
|
-
**Description**: LLM-native translation skill for SpecWeave content. Activates when translation is needed for CLI messages, templates, documentation, or living docs. Uses the current LLM session for zero-cost translation. Keywords: translate, translation, language, multilingual, i18n, internationalization, Russian, Spanish, Chinese, German, French, localization, translate to.
|
|
149
|
-
|
|
150
|
-
**Location**: `.claude/skills/translator/SKILL.md`
|
|
151
|
-
|
|
152
|
-
**Allowed tools**: Read, Write, Edit, Grep, Glob
|
|
5
|
+
**Total Skills**: 27 | **Last Updated**: 2025-11-24
|
|
153
6
|
|
|
154
7
|
---
|
|
155
8
|
|
|
9
|
+
## Lazy Loading Pattern
|
|
156
10
|
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
**Description**: Intelligently onboards brownfield projects by merging existing CLAUDE.md backups into SpecWeave structure. Extracts project-specific knowledge, domain context, team conventions, and technical details from backup CLAUDE.md files, then distributes content to appropriate SpecWeave folders without bloating CLAUDE.md. Activates for: merge docs, merge claude, onboard brownfield, import existing docs, claude backup, specweave merge-docs.
|
|
162
|
-
|
|
163
|
-
**Activates for**: merge docs, merge claude, onboard brownfield, import existing docs, claude backup, specweave merge-docs
|
|
164
|
-
|
|
165
|
-
**Location**: `.claude/skills/brownfield-onboarder/SKILL.md`
|
|
11
|
+
1. **Match triggers** below to user intent
|
|
12
|
+
2. **Load SKILL.md** only for matched skill
|
|
13
|
+
3. **Follow workflow** in loaded skill
|
|
166
14
|
|
|
167
15
|
---
|
|
168
16
|
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
**Description**: Proactively detects product/project descriptions and guides users through SpecWeave increment planning. Activates when user provides product name, features, tech stack, timeline, or problem description. Keywords: project, product, SaaS, app, MVP, build, new project, features, tech stack, core functionality, monetization, timeline, I want to build, let's build, quick build, core features.
|
|
172
|
-
|
|
173
|
-
**Location**: `.claude/skills/project-kickstarter/SKILL.md`
|
|
17
|
+
## Skills by Category
|
|
174
18
|
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
#### tdd-workflow
|
|
19
|
+
### Planning & Workflow
|
|
178
20
|
|
|
179
|
-
|
|
21
|
+
| Skill | Triggers | Location |
|
|
22
|
+
|-------|----------|----------|
|
|
23
|
+
| **increment-planner** | increment, feature, plan, create increment, new feature, organize work, MVP, SaaS, product, build project, tech stack | `skills/increment-planner/SKILL.md` |
|
|
24
|
+
| **increment-work-router** | implement, complete, build, develop, work on, continue, resume, finish, fix, resolve, let's implement, start working | `skills/increment-work-router/SKILL.md` |
|
|
25
|
+
| **spec-generator** | specification, spec.md, plan.md, tasks.md, generate spec, create tasks, requirements, acceptance criteria | `skills/spec-generator/SKILL.md` |
|
|
26
|
+
| **project-kickstarter** | project, product, SaaS, app, MVP, build, new project, features, I want to build, let's build, quick build | `skills/project-kickstarter/SKILL.md` |
|
|
27
|
+
| **roadmap-planner** | roadmap, prioritization, RICE, MoSCoW, Kano, product planning, feature ranking, KPIs, Q1 Q2 Q3 Q4, release planning | `skills/roadmap-planner/SKILL.md` |
|
|
28
|
+
| **role-orchestrator** | multi-agent, orchestrate, coordinate roles, complex project, end-to-end, full implementation, build product | `skills/role-orchestrator/SKILL.md` |
|
|
180
29
|
|
|
181
|
-
|
|
30
|
+
### Quality & Validation
|
|
182
31
|
|
|
183
|
-
|
|
32
|
+
| Skill | Triggers | Location |
|
|
33
|
+
|-------|----------|----------|
|
|
34
|
+
| **increment-quality-judge-v2** | quality check, assess spec, risk assessment, qa check, quality gate, /specweave:qa, validate quality, evaluate increment | `skills/increment-quality-judge-v2/SKILL.md` |
|
|
35
|
+
| **pm-closure-validation** | /done, close increment, validate increment, completion check, quality gate, PM approval, ready to close, scope creep | `skills/pm-closure-validation/SKILL.md` |
|
|
36
|
+
| **code-reviewer** | code review, security vulnerabilities, performance optimization, static analysis, code quality, pull request review | `skills/code-reviewer/SKILL.md` |
|
|
37
|
+
| **code-standards-analyzer** | coding standards, conventions, code style, naming conventions, linting rules, best practices, standards audit, anti-patterns | `skills/code-standards-analyzer/SKILL.md` |
|
|
38
|
+
| **tdd-workflow** | TDD, test-driven, red-green-refactor, write tests first, test-first, Kent Beck, TDD cycle | `skills/tdd-workflow/SKILL.md` |
|
|
184
39
|
|
|
40
|
+
### Synchronization
|
|
185
41
|
|
|
186
|
-
|
|
42
|
+
| Skill | Triggers | Location |
|
|
43
|
+
|-------|----------|----------|
|
|
44
|
+
| **external-sync-wizard** | GitHub sync, Jira integration, Azure DevOps, ADO, issue tracking sync, bidirectional sync, import issues, export increments | `skills/external-sync-wizard/SKILL.md` |
|
|
45
|
+
| **progress-sync** | sync progress, update progress, sync everything, sync all systems, sync to GitHub, sync to JIRA, /specweave:sync-progress | `skills/progress-sync/SKILL.md` |
|
|
46
|
+
| **multi-project-spec-mapper** | multi-project, project mapping, spec splitting, JIRA projects, multiple projects, microservices, FE/BE/MOBILE split | `skills/multi-project-spec-mapper/SKILL.md` |
|
|
187
47
|
|
|
188
|
-
|
|
189
|
-
- Scan activation keywords
|
|
190
|
-
- Match to your current task
|
|
191
|
-
- Identify 1-3 relevant skills
|
|
48
|
+
### Framework & Context
|
|
192
49
|
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
-
|
|
196
|
-
-
|
|
50
|
+
| Skill | Triggers | Location |
|
|
51
|
+
|-------|----------|----------|
|
|
52
|
+
| **specweave-detector** | slash commands, /specweave:increment, /specweave:do, /specweave:progress, /specweave:done, specweave commands, workflow help | `skills/specweave-detector/SKILL.md` |
|
|
53
|
+
| **specweave-framework** | specweave rules, how does specweave work, framework structure, increment lifecycle, source of truth, tasks.md format | `skills/specweave-framework/SKILL.md` |
|
|
54
|
+
| **context-loader** | context loading, progressive disclosure, token efficiency, sub-agents, context management, how SpecWeave scales | `skills/context-loader/SKILL.md` |
|
|
55
|
+
| **context-optimizer** | optimize context, reduce tokens, clean context, smart context, precision loading, 80% reduction | `skills/context-optimizer/SKILL.md` |
|
|
56
|
+
| **plugin-validator** | plugin validation, validate plugins, check plugins, specweave init, fresh setup, marketplace registration | `skills/plugin-validator/SKILL.md` |
|
|
197
57
|
|
|
198
|
-
|
|
199
|
-
- Apply skill's instructions
|
|
200
|
-
- Use recommended tools
|
|
201
|
-
- Follow SpecWeave best practices
|
|
58
|
+
### Maintenance & Migration
|
|
202
59
|
|
|
203
|
-
|
|
60
|
+
| Skill | Triggers | Location |
|
|
61
|
+
|-------|----------|----------|
|
|
62
|
+
| **archive-increments** | archive, clean workspace, too many increments, archive old, archive completed, _archive folder, preserve history | `skills/archive-increments/SKILL.md` |
|
|
63
|
+
| **smart-reopen-detector** | not working, broken, bug, issue, problem, failing, error, crash, regression, still broken, incorrect, missing | `skills/smart-reopen-detector/SKILL.md` |
|
|
64
|
+
| **brownfield-analyzer** | brownfield, existing project, migrate, analyze structure, legacy documentation, PRD/HLD mapping | `skills/brownfield-analyzer/SKILL.md` |
|
|
65
|
+
| **brownfield-onboarder** | merge docs, merge claude, onboard brownfield, import existing docs, claude backup, CLAUDE.md merge | `skills/brownfield-onboarder/SKILL.md` |
|
|
66
|
+
| **translator** | translate, translation, language, multilingual, i18n, internationalization, Russian, Spanish, Chinese, localization | `skills/translator/SKILL.md` |
|
|
204
67
|
|
|
205
|
-
|
|
68
|
+
### Infrastructure & Compliance
|
|
206
69
|
|
|
207
|
-
|
|
|
208
|
-
|
|
209
|
-
|
|
|
210
|
-
|
|
|
211
|
-
| "Sync to JIRA" | `jira-sync` | "JIRA sync", "create JIRA issue" |
|
|
212
|
-
| "Create diagram" | `diagrams-architect` | "architecture diagram", "C4 diagram" |
|
|
213
|
-
| "Build React UI" | `frontend` | "React", "components", "UI" |
|
|
214
|
-
| "Deploy to cloud" | `hetzner-provisioner` | "deploy", "infrastructure" |
|
|
215
|
-
| "Quality check" | `increment-quality-judge-v2` | "quality check", "assess spec", "risk assessment" |
|
|
216
|
-
| "E2E testing" | `e2e-playwright` | "E2E test", "browser test" |
|
|
217
|
-
| "Generate docs site" | `docusaurus` | "documentation site", "docs" |
|
|
70
|
+
| Skill | Triggers | Location |
|
|
71
|
+
|-------|----------|----------|
|
|
72
|
+
| **serverless-recommender** | serverless, AWS Lambda, Azure Functions, GCP Cloud Functions, Firebase, Supabase, which platform, serverless cost | `skills/serverless-recommender/SKILL.md` |
|
|
73
|
+
| **compliance-architecture** | compliance, HIPAA, SOC2, SOC 2, GDPR, PCI-DSS, regulatory, healthcare data, payment card, audit, security standards | `skills/compliance-architecture/SKILL.md` |
|
|
218
74
|
|
|
219
75
|
---
|
|
220
76
|
|
|
221
|
-
##
|
|
222
|
-
|
|
223
|
-
**Without skills**:
|
|
224
|
-
- ❌ Reinvent workflows every session
|
|
225
|
-
- ❌ Inconsistent increment structure
|
|
226
|
-
- ❌ Miss SpecWeave conventions
|
|
227
|
-
- ❌ Waste tokens on irrelevant docs
|
|
77
|
+
## Quick Lookup Table
|
|
228
78
|
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
79
|
+
| User Intent | Best Skill |
|
|
80
|
+
|-------------|-----------|
|
|
81
|
+
| "Plan a new feature" | `increment-planner` |
|
|
82
|
+
| "Implement X" / "Build Y" | `increment-work-router` |
|
|
83
|
+
| "Quality check" / "Review spec" | `increment-quality-judge-v2` |
|
|
84
|
+
| "Close increment" / "/done" | `pm-closure-validation` |
|
|
85
|
+
| "Sync to GitHub/JIRA" | `external-sync-wizard` |
|
|
86
|
+
| "Archive old increments" | `archive-increments` |
|
|
87
|
+
| "Bug/issue/broken" | `smart-reopen-detector` |
|
|
88
|
+
| "AWS vs Azure vs GCP" | `serverless-recommender` |
|
|
89
|
+
| "SOC2/HIPAA compliance" | `compliance-architecture` |
|
|
90
|
+
| "Review my code" | `code-reviewer` |
|
|
234
91
|
|
|
235
92
|
---
|
|
236
93
|
|
|
237
|
-
##
|
|
238
|
-
|
|
239
|
-
This index simulates Claude Code's native progressive disclosure:
|
|
240
|
-
- Claude pre-loads skill metadata at startup (name + description)
|
|
241
|
-
- Other tools read this index file for same benefit
|
|
242
|
-
- Single file read replaces 12 individual file scans
|
|
243
|
-
- Token savings: ~97% (1 file vs 12 files)
|
|
244
|
-
|
|
245
|
-
**How to use in your AI tool**:
|
|
246
|
-
1. Load this file at session start
|
|
247
|
-
2. Parse activation keywords
|
|
248
|
-
3. Match user requests to keywords
|
|
249
|
-
4. Load full SKILL.md when matched
|
|
250
|
-
5. Execute skill workflow
|
|
251
|
-
|
|
252
|
-
---
|
|
94
|
+
## Token Efficiency
|
|
253
95
|
|
|
254
|
-
**
|
|
96
|
+
- **This index**: ~200 lines (~4KB)
|
|
97
|
+
- **All skills loaded**: ~2,500 lines (~50KB)
|
|
98
|
+
- **Savings**: ~92% by loading skills on-demand
|
|
255
99
|
|
|
256
|
-
**
|
|
100
|
+
**Pattern**: Load this index → Match triggers → Load only matched SKILL.md
|
|
@@ -100,7 +100,7 @@ const allProjects = result.projects;
|
|
|
100
100
|
import { AreaPathMapper } from '../../../src/integrations/ado/area-path-mapper.js';
|
|
101
101
|
|
|
102
102
|
const { selectedProject } = await inquirer.prompt([{
|
|
103
|
-
type: '
|
|
103
|
+
type: 'select',
|
|
104
104
|
name: 'selectedProject',
|
|
105
105
|
message: 'Select ADO project to import area paths from:',
|
|
106
106
|
choices: allProjects.map(p => ({ name: p.name, value: p.name }))
|
|
@@ -103,7 +103,7 @@ export async function selectAdoProjects(
|
|
|
103
103
|
// Decide selection method
|
|
104
104
|
const { selectionMethod } = await inquirer.prompt([
|
|
105
105
|
{
|
|
106
|
-
type: '
|
|
106
|
+
type: 'select',
|
|
107
107
|
name: 'selectionMethod',
|
|
108
108
|
message: 'How would you like to select projects?',
|
|
109
109
|
choices: [
|
|
@@ -428,7 +428,7 @@ export async function validateAzureDevOpsResources(
|
|
|
428
428
|
```typescript
|
|
429
429
|
const { action } = await inquirer.prompt([
|
|
430
430
|
{
|
|
431
|
-
type: '
|
|
431
|
+
type: 'select',
|
|
432
432
|
name: 'action',
|
|
433
433
|
message: `Project "${projectName}" not found. What would you like to do?`,
|
|
434
434
|
choices: [
|
|
@@ -111,7 +111,7 @@ export async function selectGitHubRepos(
|
|
|
111
111
|
// Decide selection method
|
|
112
112
|
const { selectionMethod } = await inquirer.prompt([
|
|
113
113
|
{
|
|
114
|
-
type: '
|
|
114
|
+
type: 'select',
|
|
115
115
|
name: 'selectionMethod',
|
|
116
116
|
message: 'How would you like to select repositories?',
|
|
117
117
|
choices: [
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { EnhancedContentBuilder } from "../../../
|
|
2
|
-
import { SpecIncrementMapper } from "../../../
|
|
3
|
-
import { parseSpecContent } from "../../../
|
|
1
|
+
import { EnhancedContentBuilder } from "../../../src/core/sync/enhanced-content-builder.js";
|
|
2
|
+
import { SpecIncrementMapper } from "../../../src/core/sync/spec-increment-mapper.js";
|
|
3
|
+
import { parseSpecContent } from "../../../src/core/spec-content-sync.js";
|
|
4
4
|
import * as path from "path";
|
|
5
5
|
import * as fs from "fs/promises";
|
|
6
6
|
async function syncSpecToJiraWithEnhancedContent(options) {
|
|
@@ -103,7 +103,7 @@ export async function selectJiraProjects(
|
|
|
103
103
|
// Decide selection method
|
|
104
104
|
const { selectionMethod } = await inquirer.prompt([
|
|
105
105
|
{
|
|
106
|
-
type: '
|
|
106
|
+
type: 'select',
|
|
107
107
|
name: 'selectionMethod',
|
|
108
108
|
message: 'How would you like to select projects?',
|
|
109
109
|
choices: [
|
|
@@ -86,7 +86,7 @@ export async function setupJiraCredentials(): Promise<JiraCredentials> {
|
|
|
86
86
|
// Interactive credential entry
|
|
87
87
|
const answers = await inquirer.prompt([
|
|
88
88
|
{
|
|
89
|
-
type: '
|
|
89
|
+
type: 'select',
|
|
90
90
|
name: 'setupType',
|
|
91
91
|
message: 'How would you like to connect to Jira?',
|
|
92
92
|
choices: [
|
|
@@ -1,79 +0,0 @@
|
|
|
1
|
-
#!/bin/bash
|
|
2
|
-
|
|
3
|
-
# SpecWeave Docs-Changed Hook
|
|
4
|
-
# Runs after file changes are detected
|
|
5
|
-
# Detects if documentation was changed during implementation
|
|
6
|
-
# Triggers review workflow if needed
|
|
7
|
-
|
|
8
|
-
set -e
|
|
9
|
-
|
|
10
|
-
# Find project root by searching upward for .specweave/ directory
|
|
11
|
-
# Works regardless of where hook is installed (source or .claude/hooks/)
|
|
12
|
-
find_project_root() {
|
|
13
|
-
local dir="$1"
|
|
14
|
-
while [ "$dir" != "/" ]; do
|
|
15
|
-
if [ -d "$dir/.specweave" ]; then
|
|
16
|
-
echo "$dir"
|
|
17
|
-
return 0
|
|
18
|
-
fi
|
|
19
|
-
dir="$(dirname "$dir")"
|
|
20
|
-
done
|
|
21
|
-
# Fallback: try current directory
|
|
22
|
-
if [ -d "$(pwd)/.specweave" ]; then
|
|
23
|
-
pwd
|
|
24
|
-
else
|
|
25
|
-
echo "$(pwd)"
|
|
26
|
-
fi
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
PROJECT_ROOT="$(find_project_root "$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)")"
|
|
30
|
-
cd "$PROJECT_ROOT"
|
|
31
|
-
|
|
32
|
-
# Colors
|
|
33
|
-
RED='\033[0;31m'
|
|
34
|
-
YELLOW='\033[1;33m'
|
|
35
|
-
NC='\033[0m'
|
|
36
|
-
|
|
37
|
-
# Get changed files (git)
|
|
38
|
-
if ! git rev-parse --git-dir > /dev/null 2>&1; then
|
|
39
|
-
# Not a git repository, skip
|
|
40
|
-
exit 0
|
|
41
|
-
fi
|
|
42
|
-
|
|
43
|
-
CHANGED_FILES=$(git diff --name-only HEAD 2>/dev/null || echo "")
|
|
44
|
-
|
|
45
|
-
if [ -z "$CHANGED_FILES" ]; then
|
|
46
|
-
# No changes
|
|
47
|
-
exit 0
|
|
48
|
-
fi
|
|
49
|
-
|
|
50
|
-
# Check if any documentation files changed
|
|
51
|
-
DOC_CHANGES=$(echo "$CHANGED_FILES" | grep -E '\.specweave/(docs|increments/.*/.*\.md)' || true)
|
|
52
|
-
|
|
53
|
-
if [ -n "$DOC_CHANGES" ]; then
|
|
54
|
-
echo -e "${RED}⚠️ Documentation changed during implementation${NC}"
|
|
55
|
-
echo ""
|
|
56
|
-
echo "📋 Files changed:"
|
|
57
|
-
echo "$DOC_CHANGES" | sed 's/^/ /'
|
|
58
|
-
echo ""
|
|
59
|
-
echo -e "${YELLOW}🔔 Recommended actions:${NC}"
|
|
60
|
-
echo " 1. Review documentation changes"
|
|
61
|
-
echo " 2. Update tasks.md if architecture changed"
|
|
62
|
-
echo " 3. Type /review-docs to see full impact"
|
|
63
|
-
echo ""
|
|
64
|
-
|
|
65
|
-
# Play notification sound
|
|
66
|
-
case "$(uname -s)" in
|
|
67
|
-
Darwin)
|
|
68
|
-
afplay /System/Library/Sounds/Ping.aiff 2>/dev/null &
|
|
69
|
-
;;
|
|
70
|
-
Linux)
|
|
71
|
-
paplay /usr/share/sounds/freedesktop/stereo/dialog-warning.oga 2>/dev/null || true
|
|
72
|
-
;;
|
|
73
|
-
esac
|
|
74
|
-
|
|
75
|
-
# Log to hooks log
|
|
76
|
-
LOGS_DIR=".specweave/logs"
|
|
77
|
-
mkdir -p "$LOGS_DIR"
|
|
78
|
-
echo "[$(date)] Documentation changed: $DOC_CHANGES" >> "$LOGS_DIR/hooks.log"
|
|
79
|
-
fi
|