specweave 1.0.511 → 1.0.513
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/src/adapters/claude/README.md +2 -2
- package/dist/src/adapters/cursor/README.md +2 -2
- package/dist/src/adapters/generic/README.md +2 -2
- package/dist/src/cli/commands/init.d.ts.map +1 -1
- package/dist/src/cli/commands/init.js +49 -50
- package/dist/src/cli/commands/init.js.map +1 -1
- package/dist/src/cli/commands/resolve-structure.d.ts +4 -13
- package/dist/src/cli/commands/resolve-structure.d.ts.map +1 -1
- package/dist/src/cli/commands/resolve-structure.js +8 -75
- package/dist/src/cli/commands/resolve-structure.js.map +1 -1
- package/dist/src/cli/helpers/init/index.d.ts +1 -0
- package/dist/src/cli/helpers/init/index.d.ts.map +1 -1
- package/dist/src/cli/helpers/init/index.js +2 -0
- package/dist/src/cli/helpers/init/index.js.map +1 -1
- package/dist/src/cli/helpers/init/next-steps.d.ts.map +1 -1
- package/dist/src/cli/helpers/init/next-steps.js +7 -2
- package/dist/src/cli/helpers/init/next-steps.js.map +1 -1
- package/dist/src/cli/helpers/init/repo-connect.d.ts +1 -1
- package/dist/src/cli/helpers/init/repo-connect.d.ts.map +1 -1
- package/dist/src/cli/helpers/init/repo-connect.js +7 -0
- package/dist/src/cli/helpers/init/repo-connect.js.map +1 -1
- package/dist/src/cli/helpers/init/types.d.ts +2 -0
- package/dist/src/cli/helpers/init/types.d.ts.map +1 -1
- package/dist/src/cli/helpers/init/vskill-init-invoker.d.ts +30 -0
- package/dist/src/cli/helpers/init/vskill-init-invoker.d.ts.map +1 -0
- package/dist/src/cli/helpers/init/vskill-init-invoker.js +77 -0
- package/dist/src/cli/helpers/init/vskill-init-invoker.js.map +1 -0
- package/dist/src/config/types.d.ts +2 -2
- package/dist/src/init/compliance/types.d.ts +1 -1
- package/package.json +1 -1
- package/plugins/specweave/hooks/lib/common-setup.sh +1 -1
- package/plugins/specweave/hooks/lib/hook-errors.sh +2 -2
- package/plugins/specweave/hooks/lib/scheduler-startup.sh +3 -3
- package/plugins/specweave/hooks/lib/update-active-increment.sh +4 -4
- package/plugins/specweave/hooks/lib/update-status-line.sh +4 -4
- package/plugins/specweave/hooks/lib/validate-spec-status.sh +2 -2
- package/plugins/specweave/hooks/pre-compact.sh +2 -2
- package/plugins/specweave/hooks/startup-health-check.sh +1 -1
- package/plugins/specweave/hooks/stop-auto-v5.sh +3 -3
- package/plugins/specweave/hooks/stop-reflect.sh +3 -3
- package/plugins/specweave/hooks/stop-sync.sh +3 -3
- package/plugins/specweave/hooks/universal/fail-fast-wrapper.sh +2 -2
- package/plugins/specweave/hooks/user-prompt-submit.sh +1 -1
- package/plugins/specweave/hooks/v2/detectors/lifecycle-detector.sh +2 -2
- package/plugins/specweave/hooks/v2/detectors/us-completion-detector.sh +2 -2
- package/plugins/specweave/hooks/v2/dispatchers/post-tool-use-analytics.sh +2 -2
- package/plugins/specweave/hooks/v2/dispatchers/post-tool-use.sh +2 -2
- package/plugins/specweave/hooks/v2/dispatchers/pre-tool-use.sh +2 -2
- package/plugins/specweave/hooks/v2/dispatchers/session-start.sh +2 -2
- package/plugins/specweave/hooks/v2/guards/increment-existence-guard.sh +1 -1
- package/plugins/specweave/hooks/v2/guards/status-completion-guard.sh +1 -1
- package/plugins/specweave/hooks/v2/guards/task-ac-sync-guard.sh +2 -2
- package/plugins/specweave/hooks/v2/handlers/ac-sync-dispatcher.sh +1 -1
- package/plugins/specweave/hooks/v2/handlers/ac-validation-handler.sh +2 -2
- package/plugins/specweave/hooks/v2/handlers/github-sync-handler.sh +2 -2
- package/plugins/specweave/hooks/v2/handlers/living-docs-handler.sh +2 -2
- package/plugins/specweave/hooks/v2/handlers/living-specs-handler.sh +2 -2
- package/plugins/specweave/hooks/v2/handlers/project-bridge-handler.sh +2 -2
- package/plugins/specweave/hooks/v2/handlers/status-line-handler.sh +2 -2
- package/plugins/specweave/hooks/v2/handlers/status-update.sh +2 -2
- package/plugins/specweave/hooks/v2/handlers/universal-auto-create-dispatcher.sh +1 -1
- package/plugins/specweave/hooks/v2/integrations/ado-post-task.sh +1 -1
- package/plugins/specweave/hooks/v2/integrations/github-auto-create-handler.sh +2 -2
- package/plugins/specweave/hooks/v2/integrations/github-post-task.sh +1 -1
- package/plugins/specweave/hooks/v2/integrations/jira-post-task.sh +1 -1
- package/plugins/specweave/hooks/v2/queue/enqueue.sh +2 -2
- package/plugins/specweave/hooks/v2/session-end.sh +1 -1
- package/plugins/specweave/lib/external-sync/hooks-common.sh +2 -2
- package/plugins/specweave/scripts/analyze-standards.sh +2 -2
- package/plugins/specweave/scripts/cleanup-legacy-state.sh +2 -2
- package/plugins/specweave/scripts/cleanup-state.sh +2 -2
- package/plugins/specweave/scripts/heartbeat.sh +2 -2
- package/plugins/specweave/scripts/lsp-check.sh +1 -1
- package/plugins/specweave/scripts/lsp-warmup.sh +1 -1
- package/plugins/specweave/scripts/read-analytics.sh +2 -2
- package/plugins/specweave/scripts/read-costs.sh +2 -2
- package/plugins/specweave/scripts/read-grill-context.sh +2 -2
- package/plugins/specweave/scripts/read-jobs.sh +2 -2
- package/plugins/specweave/scripts/read-progress.sh +2 -2
- package/plugins/specweave/scripts/read-status.sh +2 -2
- package/plugins/specweave/scripts/read-workflow.sh +2 -2
- package/plugins/specweave/scripts/rebuild-dashboard-cache.sh +2 -2
- package/plugins/specweave/scripts/track-analytics.sh +2 -2
- package/plugins/specweave/scripts/update-dashboard-cache.sh +2 -2
- package/plugins/specweave/skills/increment/SKILL.md +49 -26
- package/plugins/specweave/skills/team-lead/SKILL.md +17 -15
- package/dist/src/cli/helpers/init/repository-setup.d.ts +0 -104
- package/dist/src/cli/helpers/init/repository-setup.d.ts.map +0 -1
- package/dist/src/cli/helpers/init/repository-setup.js +0 -1593
- package/dist/src/cli/helpers/init/repository-setup.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"repo-connect.js","sourceRoot":"","sources":["../../../../../src/cli/helpers/init/repo-connect.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AACxE,OAAO,KAAK,EAAE,MAAM,6BAA6B,CAAC;AAClD,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAiB7B,8EAA8E;AAC9E,UAAU;AACV,8EAA8E;AAE9E,MAAM,YAAY,GAAG,wCAAwC,CAAC;AAC9D,MAAM,QAAQ,GAAG,wDAAwD,CAAC;AAC1E,MAAM,MAAM,GAAG,gDAAgD,CAAC;AAEhE;;;;;;;GAOG;AACH,MAAM,UAAU,cAAc,CAAC,QAAgB;IAC7C,IAAI,CAAC,QAAQ,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE;QAAE,OAAO,EAAE,CAAC;IAE7C,MAAM,MAAM,GAAG,QAAQ;SACpB,KAAK,CAAC,QAAQ,CAAC;SACf,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;SAClB,MAAM,CAAC,OAAO,CAAC,CAAC;IAEnB,MAAM,KAAK,GAAiB,EAAE,CAAC;IAE/B,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,IAAI,KAA8B,CAAC;QAEnC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;YACpC,KAAK,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,sBAAsB,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;QAC5G,CAAC;aAAM,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;YACzC,KAAK,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,sBAAsB,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;QAC5G,CAAC;aAAM,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC;YAC/C,KAAK,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,sBAAsB,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;QAC5G,CAAC;QACD,2CAA2C;IAC7C,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,8EAA8E;AAC9E,YAAY;AACZ,8EAA8E;AAE9E,SAAS,sBAAsB,CAAC,QAA2B;IACzD,MAAM,OAAO,
|
|
1
|
+
{"version":3,"file":"repo-connect.js","sourceRoot":"","sources":["../../../../../src/cli/helpers/init/repo-connect.ts"],"names":[],"mappings":"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"}
|
|
@@ -200,6 +200,8 @@ export interface UmbrellaDiscoveryResult {
|
|
|
200
200
|
*/
|
|
201
201
|
export interface NextStepsContext {
|
|
202
202
|
isUmbrella?: boolean;
|
|
203
|
+
/** True when user selected multi-repo during init (deferred or clone) */
|
|
204
|
+
isMultiRepo?: boolean;
|
|
203
205
|
/** Repo names found at repositories/{name}/.git (1-level, missing org subfolder) */
|
|
204
206
|
misplacedRepos?: string[];
|
|
205
207
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/cli/helpers/init/types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/cli/helpers/init/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Auto-invoke `vskill init` to sync skills to non-Claude agents.
|
|
3
|
+
*
|
|
4
|
+
* Called during `specweave init` after plugin installation.
|
|
5
|
+
* Non-blocking: never throws, never prevents init from completing.
|
|
6
|
+
*
|
|
7
|
+
* Install strategy (3-tier fallback):
|
|
8
|
+
* 1. `vskill init --yes` — globally installed vskill CLI
|
|
9
|
+
* 2. `npx --registry https://registry.npmjs.org vskill init --yes` — bypasses
|
|
10
|
+
* corporate .npmrc that may redirect to a private registry
|
|
11
|
+
* 3. Graceful skip — log dim hint, do not fail
|
|
12
|
+
*
|
|
13
|
+
* @since 1.0.569
|
|
14
|
+
*/
|
|
15
|
+
export interface VskillInitResult {
|
|
16
|
+
invoked: boolean;
|
|
17
|
+
skipped: boolean;
|
|
18
|
+
error?: string;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Ensure `vskill init` runs in the project to sync skills to non-Claude agents.
|
|
22
|
+
*
|
|
23
|
+
* 1. Try `vskill init --yes` (globally installed)
|
|
24
|
+
* 2. Try `npx --registry <public> vskill init --yes` (handles missing global + .npmrc issues)
|
|
25
|
+
* 3. Skip gracefully with hint message (no failure)
|
|
26
|
+
*
|
|
27
|
+
* All errors are caught — this function never throws.
|
|
28
|
+
*/
|
|
29
|
+
export declare function ensureVskillInit(projectRoot: string): Promise<VskillInitResult>;
|
|
30
|
+
//# sourceMappingURL=vskill-init-invoker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vskill-init-invoker.d.ts","sourceRoot":"","sources":["../../../../../src/cli/helpers/init/vskill-init-invoker.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAWH,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;;GAQG;AACH,wBAAsB,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAoDrF"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Auto-invoke `vskill init` to sync skills to non-Claude agents.
|
|
3
|
+
*
|
|
4
|
+
* Called during `specweave init` after plugin installation.
|
|
5
|
+
* Non-blocking: never throws, never prevents init from completing.
|
|
6
|
+
*
|
|
7
|
+
* Install strategy (3-tier fallback):
|
|
8
|
+
* 1. `vskill init --yes` — globally installed vskill CLI
|
|
9
|
+
* 2. `npx --registry https://registry.npmjs.org vskill init --yes` — bypasses
|
|
10
|
+
* corporate .npmrc that may redirect to a private registry
|
|
11
|
+
* 3. Graceful skip — log dim hint, do not fail
|
|
12
|
+
*
|
|
13
|
+
* @since 1.0.569
|
|
14
|
+
*/
|
|
15
|
+
import { execFileNoThrow, isCommandAvailable } from '../../../utils/execFileNoThrow.js';
|
|
16
|
+
/** Public npm registry — bypasses .npmrc redirects in corporate environments */
|
|
17
|
+
const NPM_PUBLIC_REGISTRY = 'https://registry.npmjs.org';
|
|
18
|
+
/** Pinned version range for npx --package */
|
|
19
|
+
const VSKILL_VERSION_RANGE = '^0.5.0';
|
|
20
|
+
const VSKILL_INIT_ARGS = ['init', '--yes'];
|
|
21
|
+
/**
|
|
22
|
+
* Ensure `vskill init` runs in the project to sync skills to non-Claude agents.
|
|
23
|
+
*
|
|
24
|
+
* 1. Try `vskill init --yes` (globally installed)
|
|
25
|
+
* 2. Try `npx --registry <public> vskill init --yes` (handles missing global + .npmrc issues)
|
|
26
|
+
* 3. Skip gracefully with hint message (no failure)
|
|
27
|
+
*
|
|
28
|
+
* All errors are caught — this function never throws.
|
|
29
|
+
*/
|
|
30
|
+
export async function ensureVskillInit(projectRoot) {
|
|
31
|
+
try {
|
|
32
|
+
const errors = [];
|
|
33
|
+
// Tier 1: Try global vskill init (preferred method)
|
|
34
|
+
const vskillAvailable = await isCommandAvailable('vskill');
|
|
35
|
+
if (vskillAvailable) {
|
|
36
|
+
const result = await execFileNoThrow('vskill', VSKILL_INIT_ARGS, {
|
|
37
|
+
cwd: projectRoot,
|
|
38
|
+
timeout: 30000,
|
|
39
|
+
});
|
|
40
|
+
if (result.success) {
|
|
41
|
+
return { invoked: true, skipped: false };
|
|
42
|
+
}
|
|
43
|
+
const vskillErr = result.stderr?.trim() || result.error?.message || 'unknown error';
|
|
44
|
+
errors.push(`vskill: ${vskillErr}`);
|
|
45
|
+
console.warn(`[vskill-init] vskill init failed: ${vskillErr} -- trying npx fallback`);
|
|
46
|
+
}
|
|
47
|
+
// Tier 2: Try npx with explicit public registry (bypasses .npmrc redirects)
|
|
48
|
+
const npxAvailable = await isCommandAvailable('npx');
|
|
49
|
+
if (npxAvailable) {
|
|
50
|
+
const result = await execFileNoThrow('npx', [
|
|
51
|
+
'--yes', '--registry', NPM_PUBLIC_REGISTRY, '--userconfig', '/dev/null', '--ignore-scripts',
|
|
52
|
+
'--package', `vskill@${VSKILL_VERSION_RANGE}`,
|
|
53
|
+
'vskill', ...VSKILL_INIT_ARGS,
|
|
54
|
+
], {
|
|
55
|
+
cwd: projectRoot,
|
|
56
|
+
timeout: 60000, // npx may need to download vskill first
|
|
57
|
+
});
|
|
58
|
+
if (result.success) {
|
|
59
|
+
return { invoked: true, skipped: false };
|
|
60
|
+
}
|
|
61
|
+
const npxErr = result.stderr?.trim() || result.error?.message || 'unknown error';
|
|
62
|
+
errors.push(`npx: ${npxErr}`);
|
|
63
|
+
console.warn(`[vskill-init] npx vskill init failed: ${npxErr}`);
|
|
64
|
+
}
|
|
65
|
+
// Tier 3: Graceful skip
|
|
66
|
+
if (errors.length === 0) {
|
|
67
|
+
console.warn(`[vskill-init] vskill not available -- run 'npx --registry ${NPM_PUBLIC_REGISTRY} vskill init' manually to sync skills to non-Claude agents`);
|
|
68
|
+
}
|
|
69
|
+
return { invoked: false, skipped: true, error: errors.length > 0 ? errors.join('; ') : undefined };
|
|
70
|
+
}
|
|
71
|
+
catch (error) {
|
|
72
|
+
const msg = error instanceof Error ? error.message : String(error);
|
|
73
|
+
console.warn(`[vskill-init] unexpected error: ${msg}`);
|
|
74
|
+
return { invoked: false, skipped: true, error: msg };
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
//# sourceMappingURL=vskill-init-invoker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vskill-init-invoker.js","sourceRoot":"","sources":["../../../../../src/cli/helpers/init/vskill-init-invoker.ts"],"names":[],"mappings":"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"}
|
|
@@ -55,8 +55,8 @@ export declare const ResearchConfigSchema: z.ZodObject<{
|
|
|
55
55
|
dataTypes: z.ZodArray<z.ZodEnum<{
|
|
56
56
|
healthcare: "healthcare";
|
|
57
57
|
children: "children";
|
|
58
|
-
location: "location";
|
|
59
58
|
personal: "personal";
|
|
59
|
+
location: "location";
|
|
60
60
|
payment: "payment";
|
|
61
61
|
financial: "financial";
|
|
62
62
|
government: "government";
|
|
@@ -226,8 +226,8 @@ export declare const SpecWeaveConfigSchema: z.ZodObject<{
|
|
|
226
226
|
dataTypes: z.ZodArray<z.ZodEnum<{
|
|
227
227
|
healthcare: "healthcare";
|
|
228
228
|
children: "children";
|
|
229
|
-
location: "location";
|
|
230
229
|
personal: "personal";
|
|
230
|
+
location: "location";
|
|
231
231
|
payment: "payment";
|
|
232
232
|
financial: "financial";
|
|
233
233
|
government: "government";
|
|
@@ -60,8 +60,8 @@ export declare const ComplianceStandardSchema: z.ZodObject<{
|
|
|
60
60
|
dataTypes: z.ZodArray<z.ZodEnum<{
|
|
61
61
|
healthcare: "healthcare";
|
|
62
62
|
children: "children";
|
|
63
|
-
location: "location";
|
|
64
63
|
personal: "personal";
|
|
64
|
+
location: "location";
|
|
65
65
|
payment: "payment";
|
|
66
66
|
financial: "financial";
|
|
67
67
|
government: "government";
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "specweave",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.513",
|
|
4
4
|
"description": "100+ domain-expert AI skills — PM, Architect, Frontend, QA, Security and more. Skills learn your team's patterns permanently. Spec-first planning, autonomous execution, multi-agent teams, synced to GitHub/JIRA. Claude Code, Cursor, Copilot & more.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -26,7 +26,7 @@ HOOK_ERRORS_VERSION="1.0.0"
|
|
|
26
26
|
_find_hook_project_root() {
|
|
27
27
|
local dir="${1:-$PWD}"
|
|
28
28
|
while [[ "$dir" != "/" ]]; do
|
|
29
|
-
if [[ -
|
|
29
|
+
if [[ -f "$dir/.specweave/config.json" ]]; then
|
|
30
30
|
echo "$dir"
|
|
31
31
|
return 0
|
|
32
32
|
fi
|
|
@@ -39,7 +39,7 @@ _find_hook_project_root() {
|
|
|
39
39
|
_HOOK_PROJECT_ROOT=$(_find_hook_project_root)
|
|
40
40
|
|
|
41
41
|
# Exit early if not a SpecWeave project (prevents .specweave pollution)
|
|
42
|
-
if [[ -z "$_HOOK_PROJECT_ROOT" ]] || [[ ! -
|
|
42
|
+
if [[ -z "$_HOOK_PROJECT_ROOT" ]] || [[ ! -f "$_HOOK_PROJECT_ROOT/.specweave/config.json" ]]; then
|
|
43
43
|
# Define no-op functions so sourcing scripts don't fail
|
|
44
44
|
log_hook_warning() { :; }
|
|
45
45
|
log_hook_error() { :; }
|
|
@@ -15,12 +15,12 @@ set +e
|
|
|
15
15
|
|
|
16
16
|
# Find project root
|
|
17
17
|
PROJECT_ROOT="$PWD"
|
|
18
|
-
while [[ "$PROJECT_ROOT" != "/" ]] && [[ ! -
|
|
18
|
+
while [[ "$PROJECT_ROOT" != "/" ]] && [[ ! -f "$PROJECT_ROOT/.specweave/config.json" ]]; do
|
|
19
19
|
PROJECT_ROOT=$(dirname "$PROJECT_ROOT")
|
|
20
20
|
done
|
|
21
21
|
|
|
22
|
-
# Exit if no .specweave
|
|
23
|
-
[[ ! -
|
|
22
|
+
# Exit if no .specweave/config.json
|
|
23
|
+
[[ ! -f "$PROJECT_ROOT/.specweave/config.json" ]] && exit 0
|
|
24
24
|
|
|
25
25
|
# Source resolve-package.sh for dynamic specweave path resolution
|
|
26
26
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
@@ -14,17 +14,17 @@ set +e
|
|
|
14
14
|
# ============================================================================
|
|
15
15
|
# PROJECT ROOT DETECTION (CRITICAL - must NOT fallback to pwd!)
|
|
16
16
|
# ============================================================================
|
|
17
|
-
if [[ -n "$SPECWEAVE_PROJECT_ROOT" ]] && [[ -
|
|
17
|
+
if [[ -n "$SPECWEAVE_PROJECT_ROOT" ]] && [[ -f "$SPECWEAVE_PROJECT_ROOT/.specweave/config.json" ]]; then
|
|
18
18
|
PROJECT_ROOT="$SPECWEAVE_PROJECT_ROOT"
|
|
19
19
|
else
|
|
20
20
|
PROJECT_ROOT="$PWD"
|
|
21
|
-
while [[ "$PROJECT_ROOT" != "/" ]] && [[ ! -
|
|
21
|
+
while [[ "$PROJECT_ROOT" != "/" ]] && [[ ! -f "$PROJECT_ROOT/.specweave/config.json" ]]; do
|
|
22
22
|
PROJECT_ROOT=$(dirname "$PROJECT_ROOT")
|
|
23
23
|
done
|
|
24
24
|
fi
|
|
25
25
|
|
|
26
|
-
# No .specweave? Exit BEFORE any mkdir (prevents .specweave pollution)
|
|
27
|
-
[[ ! -
|
|
26
|
+
# No .specweave/config.json? Exit BEFORE any mkdir (prevents .specweave pollution)
|
|
27
|
+
[[ ! -f "$PROJECT_ROOT/.specweave/config.json" ]] && exit 0
|
|
28
28
|
|
|
29
29
|
STATE_DIR="$PROJECT_ROOT/.specweave/state"
|
|
30
30
|
ACTIVE_FILE="$STATE_DIR/active-increment.json"
|
|
@@ -21,17 +21,17 @@ set +e
|
|
|
21
21
|
# PROJECT ROOT (FAST - cached in env if available)
|
|
22
22
|
# CRITICAL: Must NOT fallback to pwd (prevents .specweave pollution)
|
|
23
23
|
# ============================================================================
|
|
24
|
-
if [[ -n "$SPECWEAVE_PROJECT_ROOT" ]] && [[ -
|
|
24
|
+
if [[ -n "$SPECWEAVE_PROJECT_ROOT" ]] && [[ -f "$SPECWEAVE_PROJECT_ROOT/.specweave/config.json" ]]; then
|
|
25
25
|
PROJECT_ROOT="$SPECWEAVE_PROJECT_ROOT"
|
|
26
26
|
else
|
|
27
27
|
PROJECT_ROOT="$PWD"
|
|
28
|
-
while [[ "$PROJECT_ROOT" != "/" ]] && [[ ! -
|
|
28
|
+
while [[ "$PROJECT_ROOT" != "/" ]] && [[ ! -f "$PROJECT_ROOT/.specweave/config.json" ]]; do
|
|
29
29
|
PROJECT_ROOT=$(dirname "$PROJECT_ROOT")
|
|
30
30
|
done
|
|
31
31
|
fi
|
|
32
32
|
|
|
33
|
-
# No .specweave? Exit immediately BEFORE any variable init (prevents pollution)
|
|
34
|
-
[[ ! -
|
|
33
|
+
# No .specweave/config.json? Exit immediately BEFORE any variable init (prevents pollution)
|
|
34
|
+
[[ ! -f "$PROJECT_ROOT/.specweave/config.json" ]] && exit 0
|
|
35
35
|
|
|
36
36
|
# ============================================================================
|
|
37
37
|
# ULTRA-FAST EXITS
|
|
@@ -22,7 +22,7 @@ set +e # EMERGENCY FIX: Changed from set -euo pipefail to prevent Claude Code c
|
|
|
22
22
|
find_project_root() {
|
|
23
23
|
local dir="$PWD"
|
|
24
24
|
while [[ "$dir" != "/" ]]; do
|
|
25
|
-
if [[ -
|
|
25
|
+
if [[ -f "$dir/.specweave/config.json" ]]; then
|
|
26
26
|
echo "$dir"
|
|
27
27
|
return 0
|
|
28
28
|
fi
|
|
@@ -35,7 +35,7 @@ find_project_root() {
|
|
|
35
35
|
PROJECT_ROOT=$(find_project_root)
|
|
36
36
|
|
|
37
37
|
# Exit early if not a SpecWeave project (prevents .specweave pollution)
|
|
38
|
-
if [[ -z "$PROJECT_ROOT" ]] || [[ ! -
|
|
38
|
+
if [[ -z "$PROJECT_ROOT" ]] || [[ ! -f "$PROJECT_ROOT/.specweave/config.json" ]]; then
|
|
39
39
|
echo "Not a SpecWeave project - skipping validation"
|
|
40
40
|
exit 0
|
|
41
41
|
fi
|
|
@@ -11,10 +11,10 @@ set +e
|
|
|
11
11
|
|
|
12
12
|
# Find project root
|
|
13
13
|
PROJECT_ROOT="$PWD"
|
|
14
|
-
while [[ "$PROJECT_ROOT" != "/" ]] && [[ ! -
|
|
14
|
+
while [[ "$PROJECT_ROOT" != "/" ]] && [[ ! -f "$PROJECT_ROOT/.specweave/config.json" ]]; do
|
|
15
15
|
PROJECT_ROOT=$(dirname "$PROJECT_ROOT")
|
|
16
16
|
done
|
|
17
|
-
[[ ! -
|
|
17
|
+
[[ ! -f "$PROJECT_ROOT/.specweave/config.json" ]] && echo '{"continue":true}' && exit 0
|
|
18
18
|
|
|
19
19
|
STATE_DIR="$PROJECT_ROOT/.specweave/state"
|
|
20
20
|
PRESSURE_FILE="$STATE_DIR/context-pressure.json"
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
# Detect project root via walk-up
|
|
10
10
|
_DIR="$PWD"
|
|
11
11
|
_LIMIT=0
|
|
12
|
-
while [ "$_DIR" != "/" ] && [ ! -
|
|
12
|
+
while [ "$_DIR" != "/" ] && [ ! -f "$_DIR/.specweave/config.json" ] && [ $_LIMIT -lt 50 ]; do
|
|
13
13
|
_DIR=$(dirname "$_DIR")
|
|
14
14
|
_LIMIT=$((_LIMIT + 1))
|
|
15
15
|
done
|
|
@@ -18,17 +18,17 @@ _get_duration_ms() {
|
|
|
18
18
|
[ -z "${__STOP_AUTO_V5_SOURCED:-}" ] && cat > /dev/null
|
|
19
19
|
|
|
20
20
|
# Project root detection (walk up to find .specweave/ — prevents pollution of subdirectories)
|
|
21
|
-
if [[ -n "${PROJECT_ROOT:-}" ]] && [[ -
|
|
21
|
+
if [[ -n "${PROJECT_ROOT:-}" ]] && [[ -f "$PROJECT_ROOT/.specweave/config.json" ]]; then
|
|
22
22
|
: # env var already set and valid
|
|
23
23
|
else
|
|
24
24
|
PROJECT_ROOT="$PWD"
|
|
25
|
-
while [[ "$PROJECT_ROOT" != "/" ]] && [[ ! -
|
|
25
|
+
while [[ "$PROJECT_ROOT" != "/" ]] && [[ ! -f "$PROJECT_ROOT/.specweave/config.json" ]]; do
|
|
26
26
|
PROJECT_ROOT=$(dirname "$PROJECT_ROOT")
|
|
27
27
|
done
|
|
28
28
|
fi
|
|
29
29
|
|
|
30
30
|
# Not a SpecWeave project — approve and exit (MUST be before any mkdir)
|
|
31
|
-
if [[ ! -
|
|
31
|
+
if [[ ! -f "$PROJECT_ROOT/.specweave/config.json" ]]; then
|
|
32
32
|
echo '{"decision":"approve"}'
|
|
33
33
|
exit 0
|
|
34
34
|
fi
|
|
@@ -26,17 +26,17 @@ INPUT=$(cat)
|
|
|
26
26
|
TRANSCRIPT_PATH=$(echo "$INPUT" | jq -r '.transcript_path // ""' 2>/dev/null)
|
|
27
27
|
|
|
28
28
|
# Project root detection (walk up to find .specweave/ — prevents pollution of subdirectories)
|
|
29
|
-
if [[ -n "${PROJECT_ROOT:-}" ]] && [[ -
|
|
29
|
+
if [[ -n "${PROJECT_ROOT:-}" ]] && [[ -f "$PROJECT_ROOT/.specweave/config.json" ]]; then
|
|
30
30
|
: # env var already set and valid
|
|
31
31
|
else
|
|
32
32
|
PROJECT_ROOT="$PWD"
|
|
33
|
-
while [[ "$PROJECT_ROOT" != "/" ]] && [[ ! -
|
|
33
|
+
while [[ "$PROJECT_ROOT" != "/" ]] && [[ ! -f "$PROJECT_ROOT/.specweave/config.json" ]]; do
|
|
34
34
|
PROJECT_ROOT=$(dirname "$PROJECT_ROOT")
|
|
35
35
|
done
|
|
36
36
|
fi
|
|
37
37
|
|
|
38
38
|
# Not a SpecWeave project — approve and exit (MUST be before any mkdir)
|
|
39
|
-
if [[ ! -
|
|
39
|
+
if [[ ! -f "$PROJECT_ROOT/.specweave/config.json" ]]; then
|
|
40
40
|
echo '{"decision":"approve"}'
|
|
41
41
|
exit 0
|
|
42
42
|
fi
|
|
@@ -22,11 +22,11 @@ set +e # Never fail
|
|
|
22
22
|
INPUT=$(cat)
|
|
23
23
|
|
|
24
24
|
# Project root detection (walk up to find .specweave/ — prevents pollution of subdirectories)
|
|
25
|
-
if [[ -n "${PROJECT_ROOT:-}" ]] && [[ -
|
|
25
|
+
if [[ -n "${PROJECT_ROOT:-}" ]] && [[ -f "$PROJECT_ROOT/.specweave/config.json" ]]; then
|
|
26
26
|
: # env var already set and valid
|
|
27
27
|
else
|
|
28
28
|
PROJECT_ROOT="$PWD"
|
|
29
|
-
while [[ "$PROJECT_ROOT" != "/" ]] && [[ ! -
|
|
29
|
+
while [[ "$PROJECT_ROOT" != "/" ]] && [[ ! -f "$PROJECT_ROOT/.specweave/config.json" ]]; do
|
|
30
30
|
PROJECT_ROOT=$(dirname "$PROJECT_ROOT")
|
|
31
31
|
done
|
|
32
32
|
fi
|
|
@@ -38,7 +38,7 @@ silent_approve() {
|
|
|
38
38
|
}
|
|
39
39
|
|
|
40
40
|
# Not a SpecWeave project — approve and exit (MUST be before any mkdir)
|
|
41
|
-
[ ! -
|
|
41
|
+
[ ! -f "$PROJECT_ROOT/.specweave/config.json" ] && silent_approve
|
|
42
42
|
|
|
43
43
|
STATE_DIR="$PROJECT_ROOT/.specweave/state"
|
|
44
44
|
QUEUE_DIR="$STATE_DIR/event-queue"
|
|
@@ -71,7 +71,7 @@ esac
|
|
|
71
71
|
find_project_root() {
|
|
72
72
|
local dir="$PWD"
|
|
73
73
|
while [[ "$dir" != "/" ]]; do
|
|
74
|
-
if [[ -
|
|
74
|
+
if [[ -f "$dir/.specweave/config.json" ]]; then
|
|
75
75
|
echo "$dir"
|
|
76
76
|
return 0
|
|
77
77
|
fi
|
|
@@ -84,7 +84,7 @@ find_project_root() {
|
|
|
84
84
|
PROJECT_ROOT=$(find_project_root)
|
|
85
85
|
|
|
86
86
|
# Exit early if not a SpecWeave project (prevents .specweave pollution)
|
|
87
|
-
if [[ -z "$PROJECT_ROOT" ]] || [[ ! -
|
|
87
|
+
if [[ -z "$PROJECT_ROOT" ]] || [[ ! -f "$PROJECT_ROOT/.specweave/config.json" ]]; then
|
|
88
88
|
# Not a SpecWeave project - output success JSON and exit
|
|
89
89
|
# UserPromptSubmit and Stop hooks need {"decision":"approve"}, others need {"continue":true}
|
|
90
90
|
if [[ "$script_name" == stop-* ]] || [[ "$script_name" == user-prompt-submit* ]]; then
|
|
@@ -1675,7 +1675,7 @@ TDD_SOURCE=""
|
|
|
1675
1675
|
TDD_MSG=""
|
|
1676
1676
|
|
|
1677
1677
|
# Only check TDD if we're in a SpecWeave project (use resolved project root)
|
|
1678
|
-
if [[ -n "$SW_PROJECT_ROOT" ]] && [[ -
|
|
1678
|
+
if [[ -n "$SW_PROJECT_ROOT" ]] && [[ -f "$SW_PROJECT_ROOT/.specweave/config.json" ]]; then
|
|
1679
1679
|
|
|
1680
1680
|
# Step 1: Check global config (LOWEST priority)
|
|
1681
1681
|
if [[ -f "$SW_PROJECT_ROOT/.specweave/config.json" ]] && command -v jq >/dev/null 2>&1; then
|
|
@@ -15,10 +15,10 @@ INC_ID="${1:-}"
|
|
|
15
15
|
|
|
16
16
|
# Find project root
|
|
17
17
|
PROJECT_ROOT="$PWD"
|
|
18
|
-
while [[ "$PROJECT_ROOT" != "/" ]] && [[ ! -
|
|
18
|
+
while [[ "$PROJECT_ROOT" != "/" ]] && [[ ! -f "$PROJECT_ROOT/.specweave/config.json" ]]; do
|
|
19
19
|
PROJECT_ROOT=$(dirname "$PROJECT_ROOT")
|
|
20
20
|
done
|
|
21
|
-
[[ ! -
|
|
21
|
+
[[ ! -f "$PROJECT_ROOT/.specweave/config.json" ]] && exit 0
|
|
22
22
|
|
|
23
23
|
STATE_DIR="$PROJECT_ROOT/.specweave/state"
|
|
24
24
|
PREV_STATUS_FILE="$STATE_DIR/.prev-status-$INC_ID"
|
|
@@ -33,10 +33,10 @@ INC_ID="${1:-}"
|
|
|
33
33
|
|
|
34
34
|
# Find project root
|
|
35
35
|
PROJECT_ROOT="$PWD"
|
|
36
|
-
while [[ "$PROJECT_ROOT" != "/" ]] && [[ ! -
|
|
36
|
+
while [[ "$PROJECT_ROOT" != "/" ]] && [[ ! -f "$PROJECT_ROOT/.specweave/config.json" ]]; do
|
|
37
37
|
PROJECT_ROOT=$(dirname "$PROJECT_ROOT")
|
|
38
38
|
done
|
|
39
|
-
[[ ! -
|
|
39
|
+
[[ ! -f "$PROJECT_ROOT/.specweave/config.json" ]] && exit 0
|
|
40
40
|
|
|
41
41
|
STATE_DIR="$PROJECT_ROOT/.specweave/state"
|
|
42
42
|
TASKS_FILE="$PROJECT_ROOT/.specweave/increments/$INC_ID/tasks.md"
|
|
@@ -12,10 +12,10 @@ set +e
|
|
|
12
12
|
|
|
13
13
|
# Project root detection
|
|
14
14
|
PROJECT_ROOT="$PWD"
|
|
15
|
-
while [[ "$PROJECT_ROOT" != "/" ]] && [[ ! -
|
|
15
|
+
while [[ "$PROJECT_ROOT" != "/" ]] && [[ ! -f "$PROJECT_ROOT/.specweave/config.json" ]]; do
|
|
16
16
|
PROJECT_ROOT=$(dirname "$PROJECT_ROOT")
|
|
17
17
|
done
|
|
18
|
-
[[ ! -
|
|
18
|
+
[[ ! -f "$PROJECT_ROOT/.specweave/config.json" ]] && exit 0
|
|
19
19
|
|
|
20
20
|
# Read stdin (tool result JSON)
|
|
21
21
|
INPUT=""
|
|
@@ -39,10 +39,10 @@ HOOK_VERSION="1.0.148"
|
|
|
39
39
|
# ============================================================================
|
|
40
40
|
|
|
41
41
|
PROJECT_ROOT="$PWD"
|
|
42
|
-
while [[ "$PROJECT_ROOT" != "/" ]] && [[ ! -
|
|
42
|
+
while [[ "$PROJECT_ROOT" != "/" ]] && [[ ! -f "$PROJECT_ROOT/.specweave/config.json" ]]; do
|
|
43
43
|
PROJECT_ROOT=$(dirname "$PROJECT_ROOT")
|
|
44
44
|
done
|
|
45
|
-
[[ ! -
|
|
45
|
+
[[ ! -f "$PROJECT_ROOT/.specweave/config.json" ]] && exit 0
|
|
46
46
|
|
|
47
47
|
STATE_DIR="$PROJECT_ROOT/.specweave/state"
|
|
48
48
|
|
|
@@ -22,11 +22,11 @@ INPUT=$(cat)
|
|
|
22
22
|
# Detect project root via walk-up (cwd may not be root)
|
|
23
23
|
_DIR="$PWD"
|
|
24
24
|
_LIMIT=0
|
|
25
|
-
while [[ "$_DIR" != "/" ]] && [[ ! -
|
|
25
|
+
while [[ "$_DIR" != "/" ]] && [[ ! -f "$_DIR/.specweave/config.json" ]] && [[ $_LIMIT -lt 50 ]]; do
|
|
26
26
|
_DIR=$(dirname "$_DIR")
|
|
27
27
|
_LIMIT=$((_LIMIT + 1))
|
|
28
28
|
done
|
|
29
|
-
[[ ! -
|
|
29
|
+
[[ ! -f "$_DIR/.specweave/config.json" ]] && echo '{"decision":"allow"}' && exit 0
|
|
30
30
|
|
|
31
31
|
# Fast file_path check: skip non-increment files before jq (< 5ms)
|
|
32
32
|
if ! echo "$INPUT" | grep -q '"file_path".*\.specweave/increments/'; then
|
|
@@ -16,10 +16,10 @@ set +e
|
|
|
16
16
|
|
|
17
17
|
# Find project root
|
|
18
18
|
PROJECT_ROOT="$PWD"
|
|
19
|
-
while [[ "$PROJECT_ROOT" != "/" ]] && [[ ! -
|
|
19
|
+
while [[ "$PROJECT_ROOT" != "/" ]] && [[ ! -f "$PROJECT_ROOT/.specweave/config.json" ]]; do
|
|
20
20
|
PROJECT_ROOT=$(dirname "$PROJECT_ROOT")
|
|
21
21
|
done
|
|
22
|
-
[[ ! -
|
|
22
|
+
[[ ! -f "$PROJECT_ROOT/.specweave/config.json" ]] && exit 0
|
|
23
23
|
|
|
24
24
|
# ============================================================================
|
|
25
25
|
# SESSION CLEANUP: ALWAYS clear auto-mode.json (CRITICAL for session-scoped auto)
|
|
@@ -175,7 +175,7 @@ FOUND=false
|
|
|
175
175
|
# Detect project root via walk-up
|
|
176
176
|
_DIR="$PWD"
|
|
177
177
|
_LIMIT=0
|
|
178
|
-
while [[ "$_DIR" != "/" ]] && [[ ! -
|
|
178
|
+
while [[ "$_DIR" != "/" ]] && [[ ! -f "$_DIR/.specweave/config.json" ]] && [[ $_LIMIT -lt 50 ]]; do
|
|
179
179
|
_DIR=$(dirname "$_DIR")
|
|
180
180
|
_LIMIT=$((_LIMIT + 1))
|
|
181
181
|
done
|
|
@@ -40,7 +40,7 @@ if echo "$NEW_STRING" | grep -qE '"status":\s*"completed"'; then
|
|
|
40
40
|
# Detect project root via walk-up
|
|
41
41
|
_DIR="$PWD"
|
|
42
42
|
_LIMIT=0
|
|
43
|
-
while [[ "$_DIR" != "/" ]] && [[ ! -
|
|
43
|
+
while [[ "$_DIR" != "/" ]] && [[ ! -f "$_DIR/.specweave/config.json" ]] && [[ $_LIMIT -lt 50 ]]; do
|
|
44
44
|
_DIR=$(dirname "$_DIR")
|
|
45
45
|
_LIMIT=$((_LIMIT + 1))
|
|
46
46
|
done
|
|
@@ -37,7 +37,7 @@ HOOK_VERSION="1.0.43"
|
|
|
37
37
|
find_project_root() {
|
|
38
38
|
local dir="$PWD"
|
|
39
39
|
while [[ "$dir" != "/" ]]; do
|
|
40
|
-
if [[ -
|
|
40
|
+
if [[ -f "$dir/.specweave/config.json" ]]; then
|
|
41
41
|
echo "$dir"
|
|
42
42
|
return 0
|
|
43
43
|
fi
|
|
@@ -49,7 +49,7 @@ find_project_root() {
|
|
|
49
49
|
|
|
50
50
|
PROJECT_ROOT=$(find_project_root)
|
|
51
51
|
[[ -z "$PROJECT_ROOT" ]] && exit 0
|
|
52
|
-
[[ ! -
|
|
52
|
+
[[ ! -f "$PROJECT_ROOT/.specweave/config.json" ]] && exit 0
|
|
53
53
|
|
|
54
54
|
# ============================================================================
|
|
55
55
|
# LOGGING INFRASTRUCTURE
|
|
@@ -13,10 +13,10 @@ INC_ID="${1:-}"
|
|
|
13
13
|
|
|
14
14
|
# Find project root
|
|
15
15
|
PROJECT_ROOT="$PWD"
|
|
16
|
-
while [[ "$PROJECT_ROOT" != "/" ]] && [[ ! -
|
|
16
|
+
while [[ "$PROJECT_ROOT" != "/" ]] && [[ ! -f "$PROJECT_ROOT/.specweave/config.json" ]]; do
|
|
17
17
|
PROJECT_ROOT=$(dirname "$PROJECT_ROOT")
|
|
18
18
|
done
|
|
19
|
-
[[ ! -
|
|
19
|
+
[[ ! -f "$PROJECT_ROOT/.specweave/config.json" ]] && exit 0
|
|
20
20
|
|
|
21
21
|
INC_DIR="$PROJECT_ROOT/.specweave/increments/$INC_ID"
|
|
22
22
|
TASKS_FILE="$INC_DIR/tasks.md"
|
|
@@ -42,10 +42,10 @@ fi
|
|
|
42
42
|
|
|
43
43
|
# Find project root
|
|
44
44
|
PROJECT_ROOT="$PWD"
|
|
45
|
-
while [[ "$PROJECT_ROOT" != "/" ]] && [[ ! -
|
|
45
|
+
while [[ "$PROJECT_ROOT" != "/" ]] && [[ ! -f "$PROJECT_ROOT/.specweave/config.json" ]]; do
|
|
46
46
|
PROJECT_ROOT=$(dirname "$PROJECT_ROOT")
|
|
47
47
|
done
|
|
48
|
-
[[ ! -
|
|
48
|
+
[[ ! -f "$PROJECT_ROOT/.specweave/config.json" ]] && exit 0
|
|
49
49
|
|
|
50
50
|
CONFIG_FILE="$PROJECT_ROOT/.specweave/config.json"
|
|
51
51
|
[[ ! -f "$CONFIG_FILE" ]] && exit 0
|