specweave 1.0.253 → 1.0.255
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/CLAUDE.md +24 -24
- package/README.md +163 -1
- package/dist/src/adapters/agents-md-generator.d.ts.map +1 -1
- package/dist/src/adapters/agents-md-generator.js +0 -1
- package/dist/src/adapters/agents-md-generator.js.map +1 -1
- package/dist/src/adapters/claude/README.md +0 -1
- package/dist/src/adapters/claude-md-generator.d.ts.map +1 -1
- package/dist/src/adapters/claude-md-generator.js +0 -1
- package/dist/src/adapters/claude-md-generator.js.map +1 -1
- package/dist/src/cli/commands/docs.d.ts.map +1 -1
- package/dist/src/cli/commands/docs.js +59 -55
- package/dist/src/cli/commands/docs.js.map +1 -1
- package/dist/src/cli/helpers/init/smart-defaults.d.ts.map +1 -1
- package/dist/src/cli/helpers/init/smart-defaults.js +7 -1
- package/dist/src/cli/helpers/init/smart-defaults.js.map +1 -1
- package/dist/src/core/config/types.d.ts +2 -0
- package/dist/src/core/config/types.d.ts.map +1 -1
- package/dist/src/core/config/types.js.map +1 -1
- package/dist/src/core/discrepancy/analyzers/api-route-analyzer.d.ts.map +1 -1
- package/dist/src/core/discrepancy/analyzers/api-route-analyzer.js +5 -0
- package/dist/src/core/discrepancy/analyzers/api-route-analyzer.js.map +1 -1
- package/dist/src/core/lazy-loading/llm-plugin-detector.d.ts +21 -0
- package/dist/src/core/lazy-loading/llm-plugin-detector.d.ts.map +1 -1
- package/dist/src/core/lazy-loading/llm-plugin-detector.js +61 -107
- package/dist/src/core/lazy-loading/llm-plugin-detector.js.map +1 -1
- package/dist/src/core/living-docs/enterprise/history-analyzer.d.ts.map +1 -1
- package/dist/src/core/living-docs/enterprise/history-analyzer.js +1 -3
- package/dist/src/core/living-docs/enterprise/history-analyzer.js.map +1 -1
- package/dist/src/core/living-docs/governance/java-standards-parser.d.ts.map +1 -1
- package/dist/src/core/living-docs/governance/java-standards-parser.js +37 -18
- package/dist/src/core/living-docs/governance/java-standards-parser.js.map +1 -1
- package/dist/src/core/living-docs/operations/ops-generator.js +2 -2
- package/dist/src/core/living-docs/operations/ops-generator.js.map +1 -1
- package/dist/src/core/reflection/index.d.ts +1 -1
- package/dist/src/core/reflection/index.d.ts.map +1 -1
- package/dist/src/core/reflection/index.js +1 -1
- package/dist/src/core/reflection/index.js.map +1 -1
- package/dist/src/core/reflection/reflect-handler.d.ts.map +1 -1
- package/dist/src/core/reflection/reflect-handler.js +1 -2
- package/dist/src/core/reflection/reflect-handler.js.map +1 -1
- package/dist/src/core/reflection/skill-memories.d.ts +13 -1
- package/dist/src/core/reflection/skill-memories.d.ts.map +1 -1
- package/dist/src/core/reflection/skill-memories.js +55 -10
- package/dist/src/core/reflection/skill-memories.js.map +1 -1
- package/dist/src/core/repo-structure/prefix-validator.d.ts +25 -0
- package/dist/src/core/repo-structure/prefix-validator.d.ts.map +1 -0
- package/dist/src/core/repo-structure/prefix-validator.js +47 -0
- package/dist/src/core/repo-structure/prefix-validator.js.map +1 -0
- package/dist/src/core/repo-structure/repo-structure-manager.d.ts +4 -0
- package/dist/src/core/repo-structure/repo-structure-manager.d.ts.map +1 -1
- package/dist/src/core/repo-structure/repo-structure-manager.js.map +1 -1
- package/dist/src/core/repo-structure/role-prefix-collector.d.ts +45 -0
- package/dist/src/core/repo-structure/role-prefix-collector.d.ts.map +1 -0
- package/dist/src/core/repo-structure/role-prefix-collector.js +106 -0
- package/dist/src/core/repo-structure/role-prefix-collector.js.map +1 -0
- package/dist/src/hooks/session-start.js +7 -0
- package/dist/src/hooks/session-start.js.map +1 -1
- package/dist/src/sync/story-router.d.ts +36 -0
- package/dist/src/sync/story-router.d.ts.map +1 -0
- package/dist/src/sync/story-router.js +56 -0
- package/dist/src/sync/story-router.js.map +1 -0
- package/dist/src/utils/agents-md-compiler.d.ts.map +1 -1
- package/dist/src/utils/agents-md-compiler.js +0 -1
- package/dist/src/utils/agents-md-compiler.js.map +1 -1
- package/dist/src/utils/state-cleanup.d.ts +19 -0
- package/dist/src/utils/state-cleanup.d.ts.map +1 -0
- package/dist/src/utils/state-cleanup.js +61 -0
- package/dist/src/utils/state-cleanup.js.map +1 -0
- package/package.json +1 -1
- package/plugins/specweave/PLUGIN.md +0 -1
- package/plugins/specweave/commands/brownfield-analyzer.md +0 -10
- package/plugins/specweave/commands/brownfield-onboarder.md +0 -10
- package/plugins/specweave/commands/export-skills.md +0 -10
- package/plugins/specweave/commands/plugin-validator.md +0 -10
- package/plugins/specweave/hooks/stop-reflect.sh +4 -2
- package/plugins/specweave/hooks/user-prompt-submit.sh +29 -68
- package/plugins/specweave/hooks/v2/dispatchers/session-start.sh +0 -3
- package/plugins/specweave/skills/architect/SKILL.md +2 -6
- package/plugins/specweave/skills/archive-increments/SKILL.md +0 -10
- package/plugins/specweave/skills/auto/SKILL.md +4 -0
- package/plugins/specweave/skills/cancel-auto/SKILL.md +5 -1
- package/plugins/specweave/skills/code-review/SKILL.md +1 -11
- package/plugins/specweave/skills/code-simplifier/SKILL.md +3 -7
- package/plugins/specweave/skills/do/SKILL.md +6 -2
- package/plugins/specweave/skills/docs/SKILL.md +5 -8
- package/plugins/specweave/skills/docs-updater/SKILL.md +4 -10
- package/plugins/specweave/skills/done/SKILL.md +6 -3
- package/plugins/specweave/skills/framework/SKILL.md +4 -10
- package/plugins/specweave/skills/grill/SKILL.md +7 -12
- package/plugins/specweave/skills/increment/SKILL.md +5 -0
- package/plugins/specweave/skills/increment-planner/SKILL.md +4 -7
- package/plugins/specweave/skills/increment-work-router/SKILL.md +0 -10
- package/plugins/specweave/skills/judge-llm/SKILL.md +0 -11
- package/plugins/specweave/skills/lsp/SKILL.md +4 -10
- package/plugins/specweave/skills/multi-project-spec-mapper/SKILL.md +0 -10
- package/plugins/specweave/skills/next/SKILL.md +1 -1
- package/plugins/specweave/skills/plan/SKILL.md +1 -1
- package/plugins/specweave/skills/pm/SKILL.md +6 -11
- package/plugins/specweave/skills/pm-closure-validation/SKILL.md +0 -10
- package/plugins/specweave/skills/progress/SKILL.md +5 -1
- package/plugins/specweave/skills/progress-sync/SKILL.md +2 -11
- package/plugins/specweave/skills/save/SKILL.md +6 -1
- package/plugins/specweave/skills/security/SKILL.md +2 -6
- package/plugins/specweave/skills/security-patterns/SKILL.md +4 -10
- package/plugins/specweave/skills/smart-reopen-detector/SKILL.md +0 -10
- package/plugins/specweave/skills/spec-generator/SKILL.md +0 -10
- package/plugins/specweave/skills/tdd-cycle/SKILL.md +5 -1
- package/plugins/specweave/skills/tdd-green/SKILL.md +5 -1
- package/plugins/specweave/skills/tdd-orchestrator/SKILL.md +4 -10
- package/plugins/specweave/skills/tdd-red/SKILL.md +5 -1
- package/plugins/specweave/skills/tdd-refactor/SKILL.md +1 -1
- package/plugins/specweave/skills/team-build/SKILL.md +1 -1
- package/plugins/specweave/skills/team-lead/SKILL.md +3 -3
- package/plugins/specweave/skills/test-aware-planner/SKILL.md +0 -10
- package/plugins/specweave/skills/umbrella-repo-detector/SKILL.md +0 -10
- package/plugins/specweave/skills/update-instructions/SKILL.md +0 -10
- package/plugins/specweave/skills/validate/SKILL.md +6 -1
- package/plugins/specweave-github/commands/close.md +2 -2
- package/src/templates/CLAUDE.md.template +1 -1
- package/src/templates/docs/adr-template.md +1 -1
- package/src/templates/docs/hld-template.md +1 -1
- package/src/templates/docs/lld-template.md +2 -2
- package/src/templates/docs/rfc-template.md +1 -1
- package/src/templates/docs/spec-template.md +1 -1
- package/dist/src/core/reflection/skill-memory-injector.d.ts +0 -42
- package/dist/src/core/reflection/skill-memory-injector.d.ts.map +0 -1
- package/dist/src/core/reflection/skill-memory-injector.js +0 -67
- package/dist/src/core/reflection/skill-memory-injector.js.map +0 -1
- package/plugins/specweave/commands/skill.md +0 -620
- package/plugins/specweave/skills/tech-lead/SKILL.md +0 -25
- package/plugins/specweave/templates/coding-standards.md.template +0 -535
- package/plugins/specweave/templates/hookify/README.md +0 -47
- package/plugins/specweave/templates/hookify/hookify.block-force-push.local.md +0 -19
- package/plugins/specweave/templates/hookify/hookify.block-metadata-status.local.md +0 -18
- package/plugins/specweave/templates/hookify/hookify.block-secrets.local.md +0 -26
- package/plugins/specweave/templates/hookify/hookify.require-tests.local.md +0 -22
- package/plugins/specweave/templates/hookify/hookify.warn-dangerous-rm.local.md +0 -23
- package/plugins/specweave/templates/hookify/hookify.warn-root-files.local.md +0 -21
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
---
|
|
2
|
-
description: Validate
|
|
2
|
+
description: Validate increment with rule-based checks and AI quality assessment. Use when saying "validate", "check quality", or "verify increment".
|
|
3
|
+
argument-hint: "[increment-id]"
|
|
3
4
|
hooks:
|
|
4
5
|
Stop:
|
|
5
6
|
- hooks:
|
|
@@ -9,6 +10,10 @@ hooks:
|
|
|
9
10
|
|
|
10
11
|
# Validate Increment
|
|
11
12
|
|
|
13
|
+
## Project Overrides
|
|
14
|
+
|
|
15
|
+
!`s="validate"; for d in .specweave/skill-memories .claude/skill-memories "$HOME/.claude/skill-memories"; do p="$d/$s.md"; [ -f "$p" ] && awk '/^## Learnings$/{ok=1;next}/^## /{ok=0}ok' "$p" && break; done 2>/dev/null`
|
|
16
|
+
|
|
12
17
|
You are helping the user validate a SpecWeave increment with optional AI-powered quality assessment.
|
|
13
18
|
|
|
14
19
|
## Usage
|
|
@@ -364,9 +364,9 @@ plugins:
|
|
|
364
364
|
- type: "pr_merged"
|
|
365
365
|
required: true
|
|
366
366
|
|
|
367
|
-
# Require approval from
|
|
367
|
+
# Require approval from architect
|
|
368
368
|
- type: "approval"
|
|
369
|
-
approvers: ["@
|
|
369
|
+
approvers: ["@architect"]
|
|
370
370
|
required: true
|
|
371
371
|
```
|
|
372
372
|
|
|
@@ -38,7 +38,7 @@ plugins/specweave/
|
|
|
38
38
|
└── skills/ # Auto-activating expertise (keyword-triggered)
|
|
39
39
|
├── architect/ # → activates on "architecture", "system design"
|
|
40
40
|
├── pm/ # → activates on "product", "requirements", "MVP"
|
|
41
|
-
└──
|
|
41
|
+
└── code-simplifier/ # → activates on "simplify code", "clean up code"
|
|
42
42
|
```
|
|
43
43
|
|
|
44
44
|
### Quick Examples
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
**Author**: [Your Name]
|
|
5
5
|
**Created**: YYYY-MM-DD
|
|
6
6
|
**Last Updated**: YYYY-MM-DD
|
|
7
|
-
**Reviewers**: @
|
|
7
|
+
**Reviewers**: @architect, @senior-engineer
|
|
8
8
|
|
|
9
9
|
**Related HLD**: [Link to HLD](hld-{system-name}.md)
|
|
10
10
|
|
|
@@ -553,7 +553,7 @@ Response:
|
|
|
553
553
|
## Open Questions / TODOs
|
|
554
554
|
|
|
555
555
|
- [ ] **Q1**: Should we support OAuth 2.0 providers (Google, GitHub)?
|
|
556
|
-
- **Owner**: @
|
|
556
|
+
- **Owner**: @architect
|
|
557
557
|
- **Due Date**: YYYY-MM-DD
|
|
558
558
|
|
|
559
559
|
- [ ] **Q2**: Should we implement passwordless login (magic links)?
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Skill Memory Injector
|
|
3
|
-
*
|
|
4
|
-
* Provides functions to extract and inject skill-specific memories
|
|
5
|
-
* into Claude's context when a skill is detected.
|
|
6
|
-
*
|
|
7
|
-
* Used by user-prompt-submit hook to automatically inject learnings
|
|
8
|
-
* when detect-intent identifies a skill invocation.
|
|
9
|
-
*
|
|
10
|
-
* @module core/reflection/skill-memory-injector
|
|
11
|
-
*/
|
|
12
|
-
/**
|
|
13
|
-
* Extract skill name from full skill identifier
|
|
14
|
-
*
|
|
15
|
-
* @example
|
|
16
|
-
* extractSkillName('sw:pm') // → 'pm'
|
|
17
|
-
* extractSkillName('sw-frontend:frontend-architect') // → 'frontend-architect'
|
|
18
|
-
* extractSkillName('architect') // → 'architect'
|
|
19
|
-
*/
|
|
20
|
-
export declare function extractSkillName(fullSkillName: string): string;
|
|
21
|
-
/**
|
|
22
|
-
* Build skill memory content for injection into additionalContext
|
|
23
|
-
*
|
|
24
|
-
* Reads the skill memory file and extracts learnings section.
|
|
25
|
-
* Returns formatted context string or null if no memory exists.
|
|
26
|
-
*
|
|
27
|
-
* @param projectRoot - Project root path
|
|
28
|
-
* @param skillName - Skill name (e.g., 'pm', 'frontend-architect')
|
|
29
|
-
* @returns Formatted memory context or null
|
|
30
|
-
*/
|
|
31
|
-
export declare function buildSkillMemoryContext(projectRoot: string, skillName: string): string | null;
|
|
32
|
-
/**
|
|
33
|
-
* Build skill memory context from a full skill identifier
|
|
34
|
-
*
|
|
35
|
-
* Convenience function that combines extractSkillName and buildSkillMemoryContext.
|
|
36
|
-
*
|
|
37
|
-
* @param projectRoot - Project root path
|
|
38
|
-
* @param fullSkillName - Full skill name (e.g., 'sw:pm', 'sw-frontend:frontend-architect')
|
|
39
|
-
* @returns Formatted memory context or null
|
|
40
|
-
*/
|
|
41
|
-
export declare function getSkillMemoryForInjection(projectRoot: string, fullSkillName: string): string | null;
|
|
42
|
-
//# sourceMappingURL=skill-memory-injector.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"skill-memory-injector.d.ts","sourceRoot":"","sources":["../../../../src/core/reflection/skill-memory-injector.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAKH;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAI9D;AAED;;;;;;;;;GASG;AACH,wBAAgB,uBAAuB,CACrC,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,GAChB,MAAM,GAAG,IAAI,CA0Bf;AAED;;;;;;;;GAQG;AACH,wBAAgB,0BAA0B,CACxC,WAAW,EAAE,MAAM,EACnB,aAAa,EAAE,MAAM,GACpB,MAAM,GAAG,IAAI,CAGf"}
|
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Skill Memory Injector
|
|
3
|
-
*
|
|
4
|
-
* Provides functions to extract and inject skill-specific memories
|
|
5
|
-
* into Claude's context when a skill is detected.
|
|
6
|
-
*
|
|
7
|
-
* Used by user-prompt-submit hook to automatically inject learnings
|
|
8
|
-
* when detect-intent identifies a skill invocation.
|
|
9
|
-
*
|
|
10
|
-
* @module core/reflection/skill-memory-injector
|
|
11
|
-
*/
|
|
12
|
-
import * as fs from 'fs';
|
|
13
|
-
import * as path from 'path';
|
|
14
|
-
/**
|
|
15
|
-
* Extract skill name from full skill identifier
|
|
16
|
-
*
|
|
17
|
-
* @example
|
|
18
|
-
* extractSkillName('sw:pm') // → 'pm'
|
|
19
|
-
* extractSkillName('sw-frontend:frontend-architect') // → 'frontend-architect'
|
|
20
|
-
* extractSkillName('architect') // → 'architect'
|
|
21
|
-
*/
|
|
22
|
-
export function extractSkillName(fullSkillName) {
|
|
23
|
-
// Format: "plugin:skill" or just "skill"
|
|
24
|
-
const parts = fullSkillName.split(':');
|
|
25
|
-
return parts.length > 1 ? parts[1] : parts[0];
|
|
26
|
-
}
|
|
27
|
-
/**
|
|
28
|
-
* Build skill memory content for injection into additionalContext
|
|
29
|
-
*
|
|
30
|
-
* Reads the skill memory file and extracts learnings section.
|
|
31
|
-
* Returns formatted context string or null if no memory exists.
|
|
32
|
-
*
|
|
33
|
-
* @param projectRoot - Project root path
|
|
34
|
-
* @param skillName - Skill name (e.g., 'pm', 'frontend-architect')
|
|
35
|
-
* @returns Formatted memory context or null
|
|
36
|
-
*/
|
|
37
|
-
export function buildSkillMemoryContext(projectRoot, skillName) {
|
|
38
|
-
const memoryPath = path.join(projectRoot, '.specweave', 'skill-memories', `${skillName}.md`);
|
|
39
|
-
if (!fs.existsSync(memoryPath)) {
|
|
40
|
-
return null;
|
|
41
|
-
}
|
|
42
|
-
const content = fs.readFileSync(memoryPath, 'utf-8');
|
|
43
|
-
// Extract just the learnings section (skip the header)
|
|
44
|
-
const learningsMatch = content.match(/## Learnings\n([\s\S]*?)(?:\n## |$)/);
|
|
45
|
-
if (!learningsMatch) {
|
|
46
|
-
return null;
|
|
47
|
-
}
|
|
48
|
-
const learnings = learningsMatch[1].trim();
|
|
49
|
-
if (!learnings) {
|
|
50
|
-
return null;
|
|
51
|
-
}
|
|
52
|
-
return `📚 **Skill Memory for ${skillName}**:\n${learnings}`;
|
|
53
|
-
}
|
|
54
|
-
/**
|
|
55
|
-
* Build skill memory context from a full skill identifier
|
|
56
|
-
*
|
|
57
|
-
* Convenience function that combines extractSkillName and buildSkillMemoryContext.
|
|
58
|
-
*
|
|
59
|
-
* @param projectRoot - Project root path
|
|
60
|
-
* @param fullSkillName - Full skill name (e.g., 'sw:pm', 'sw-frontend:frontend-architect')
|
|
61
|
-
* @returns Formatted memory context or null
|
|
62
|
-
*/
|
|
63
|
-
export function getSkillMemoryForInjection(projectRoot, fullSkillName) {
|
|
64
|
-
const skillName = extractSkillName(fullSkillName);
|
|
65
|
-
return buildSkillMemoryContext(projectRoot, skillName);
|
|
66
|
-
}
|
|
67
|
-
//# sourceMappingURL=skill-memory-injector.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"skill-memory-injector.js","sourceRoot":"","sources":["../../../../src/core/reflection/skill-memory-injector.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAE7B;;;;;;;GAOG;AACH,MAAM,UAAU,gBAAgB,CAAC,aAAqB;IACpD,yCAAyC;IACzC,MAAM,KAAK,GAAG,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACvC,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAChD,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,uBAAuB,CACrC,WAAmB,EACnB,SAAiB;IAEjB,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAC1B,WAAW,EACX,YAAY,EACZ,gBAAgB,EAChB,GAAG,SAAS,KAAK,CAClB,CAAC;IAEF,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC/B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IAErD,uDAAuD;IACvD,MAAM,cAAc,GAAG,OAAO,CAAC,KAAK,CAAC,qCAAqC,CAAC,CAAC;IAC5E,IAAI,CAAC,cAAc,EAAE,CAAC;QACpB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,SAAS,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAC3C,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,yBAAyB,SAAS,QAAQ,SAAS,EAAE,CAAC;AAC/D,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,0BAA0B,CACxC,WAAmB,EACnB,aAAqB;IAErB,MAAM,SAAS,GAAG,gBAAgB,CAAC,aAAa,CAAC,CAAC;IAClD,OAAO,uBAAuB,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;AACzD,CAAC"}
|