@gempack/squad-mcp 0.3.1

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 (81) hide show
  1. package/.claude-plugin/marketplace.json +20 -0
  2. package/.claude-plugin/plugin.json +20 -0
  3. package/CHANGELOG.md +282 -0
  4. package/LICENSE +201 -0
  5. package/NOTICE +11 -0
  6. package/README.md +164 -0
  7. package/agents/PO.md +84 -0
  8. package/agents/Senior-Architect.md +121 -0
  9. package/agents/Senior-DBA.md +137 -0
  10. package/agents/Senior-Dev-Reviewer.md +104 -0
  11. package/agents/Senior-Dev-Security.md +134 -0
  12. package/agents/Senior-Developer.md +180 -0
  13. package/agents/Senior-QA.md +146 -0
  14. package/agents/Skill-Squad-Dev.md +369 -0
  15. package/agents/Skill-Squad-Review.md +267 -0
  16. package/agents/TechLead-Consolidator.md +117 -0
  17. package/agents/TechLead-Planner.md +90 -0
  18. package/agents/_Severity-and-Ownership.md +68 -0
  19. package/commands/squad-review.md +68 -0
  20. package/commands/squad.md +81 -0
  21. package/dist/config/ownership-matrix.d.ts +48 -0
  22. package/dist/config/ownership-matrix.js +197 -0
  23. package/dist/config/ownership-matrix.js.map +1 -0
  24. package/dist/errors.d.ts +7 -0
  25. package/dist/errors.js +14 -0
  26. package/dist/errors.js.map +1 -0
  27. package/dist/exec/git.d.ts +17 -0
  28. package/dist/exec/git.js +0 -0
  29. package/dist/exec/git.js.map +1 -0
  30. package/dist/index.d.ts +2 -0
  31. package/dist/index.js +33 -0
  32. package/dist/index.js.map +1 -0
  33. package/dist/observability/logger.d.ts +23 -0
  34. package/dist/observability/logger.js +93 -0
  35. package/dist/observability/logger.js.map +1 -0
  36. package/dist/prompts/registry.d.ts +21 -0
  37. package/dist/prompts/registry.js +183 -0
  38. package/dist/prompts/registry.js.map +1 -0
  39. package/dist/resources/agent-loader.d.ts +20 -0
  40. package/dist/resources/agent-loader.js +122 -0
  41. package/dist/resources/agent-loader.js.map +1 -0
  42. package/dist/resources/registry.d.ts +13 -0
  43. package/dist/resources/registry.js +67 -0
  44. package/dist/resources/registry.js.map +1 -0
  45. package/dist/tools/agents.d.ts +22 -0
  46. package/dist/tools/agents.js +32 -0
  47. package/dist/tools/agents.js.map +1 -0
  48. package/dist/tools/classify-work-type.d.ts +28 -0
  49. package/dist/tools/classify-work-type.js +0 -0
  50. package/dist/tools/classify-work-type.js.map +1 -0
  51. package/dist/tools/compose-advisory-bundle.d.ts +75 -0
  52. package/dist/tools/compose-advisory-bundle.js +68 -0
  53. package/dist/tools/compose-advisory-bundle.js.map +1 -0
  54. package/dist/tools/compose-squad-workflow.d.ts +84 -0
  55. package/dist/tools/compose-squad-workflow.js +0 -0
  56. package/dist/tools/compose-squad-workflow.js.map +1 -0
  57. package/dist/tools/consolidate.d.ts +97 -0
  58. package/dist/tools/consolidate.js +75 -0
  59. package/dist/tools/consolidate.js.map +1 -0
  60. package/dist/tools/detect-changed-files.d.ts +35 -0
  61. package/dist/tools/detect-changed-files.js +0 -0
  62. package/dist/tools/detect-changed-files.js.map +1 -0
  63. package/dist/tools/registry.d.ts +26 -0
  64. package/dist/tools/registry.js +169 -0
  65. package/dist/tools/registry.js.map +1 -0
  66. package/dist/tools/score-risk.d.ts +38 -0
  67. package/dist/tools/score-risk.js +34 -0
  68. package/dist/tools/score-risk.js.map +1 -0
  69. package/dist/tools/select-squad.d.ts +46 -0
  70. package/dist/tools/select-squad.js +0 -0
  71. package/dist/tools/select-squad.js.map +1 -0
  72. package/dist/tools/slice-files.d.ts +34 -0
  73. package/dist/tools/slice-files.js +0 -0
  74. package/dist/tools/slice-files.js.map +1 -0
  75. package/dist/tools/validate-plan-text.d.ts +24 -0
  76. package/dist/tools/validate-plan-text.js +0 -0
  77. package/dist/tools/validate-plan-text.js.map +1 -0
  78. package/dist/util/path-safety.d.ts +28 -0
  79. package/dist/util/path-safety.js +0 -0
  80. package/dist/util/path-safety.js.map +1 -0
  81. package/package.json +71 -0
@@ -0,0 +1,34 @@
1
+ import { z } from 'zod';
2
+ const schema = z.object({
3
+ touches_auth: z.boolean().optional().default(false),
4
+ touches_money: z.boolean().optional().default(false),
5
+ touches_migration: z.boolean().optional().default(false),
6
+ files_count: z.number().int().nonnegative().optional().default(0),
7
+ new_module: z.boolean().optional().default(false),
8
+ api_contract_change: z.boolean().optional().default(false),
9
+ });
10
+ export function scoreRisk(input) {
11
+ const checks = [
12
+ { name: 'touches_auth', matched: input.touches_auth },
13
+ { name: 'touches_money', matched: input.touches_money },
14
+ { name: 'touches_migration', matched: input.touches_migration },
15
+ { name: 'files_count_gt_8', matched: input.files_count > 8 },
16
+ { name: 'new_module', matched: input.new_module },
17
+ { name: 'api_contract_change', matched: input.api_contract_change },
18
+ ];
19
+ const score = checks.filter((c) => c.matched).length;
20
+ const level = score >= 4 ? 'High' : score >= 2 ? 'Medium' : 'Low';
21
+ const recommendation = level === 'High'
22
+ ? 'High risk: suggest Codex plan review (--codex). Halt implementation if any Blocker.'
23
+ : level === 'Medium'
24
+ ? 'Medium risk: standard advisory squad. Consider Codex if user requests.'
25
+ : 'Low risk: minimal squad selection acceptable.';
26
+ return { level, score, signals: checks, recommendation };
27
+ }
28
+ export const scoreRiskTool = {
29
+ name: 'score_risk',
30
+ description: 'Compute risk level (Low/Medium/High) from boolean signals. Pure function. 0-1=Low, 2-3=Medium, 4+=High.',
31
+ schema,
32
+ handler: scoreRisk,
33
+ };
34
+ //# sourceMappingURL=score-risk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"score-risk.js","sourceRoot":"","sources":["../../src/tools/score-risk.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;IACtB,YAAY,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IACnD,aAAa,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IACpD,iBAAiB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IACxD,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IACjE,UAAU,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IACjD,mBAAmB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;CAC3D,CAAC,CAAC;AAaH,MAAM,UAAU,SAAS,CAAC,KAAY;IACpC,MAAM,MAAM,GAAG;QACb,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,KAAK,CAAC,YAAY,EAAE;QACrD,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,KAAK,CAAC,aAAa,EAAE;QACvD,EAAE,IAAI,EAAE,mBAAmB,EAAE,OAAO,EAAE,KAAK,CAAC,iBAAiB,EAAE;QAC/D,EAAE,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,KAAK,CAAC,WAAW,GAAG,CAAC,EAAE;QAC5D,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,KAAK,CAAC,UAAU,EAAE;QACjD,EAAE,IAAI,EAAE,qBAAqB,EAAE,OAAO,EAAE,KAAK,CAAC,mBAAmB,EAAE;KACpE,CAAC;IACF,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC;IACrD,MAAM,KAAK,GAAc,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC;IAC7E,MAAM,cAAc,GAClB,KAAK,KAAK,MAAM;QACd,CAAC,CAAC,qFAAqF;QACvF,CAAC,CAAC,KAAK,KAAK,QAAQ;YAClB,CAAC,CAAC,wEAAwE;YAC1E,CAAC,CAAC,+CAA+C,CAAC;IACxD,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC;AAC3D,CAAC;AAED,MAAM,CAAC,MAAM,aAAa,GAA2B;IACnD,IAAI,EAAE,YAAY;IAClB,WAAW,EACT,yGAAyG;IAC3G,MAAM;IACN,OAAO,EAAE,SAAS;CACnB,CAAC"}
@@ -0,0 +1,46 @@
1
+ import { z } from 'zod';
2
+ import type { ToolDef } from './registry.js';
3
+ import { type AgentName } from '../config/ownership-matrix.js';
4
+ declare const schema: z.ZodObject<{
5
+ work_type: z.ZodEnum<["Feature", "Bug Fix", "Refactor", "Performance", "Security", "Business Rule"]>;
6
+ files: z.ZodDefault<z.ZodArray<z.ZodEffects<z.ZodString, string, string>, "many">>;
7
+ read_content: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
8
+ force_agents: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodEnum<[AgentName, ...AgentName[]]>, "many">>>;
9
+ workspace_root: z.ZodOptional<z.ZodEffects<z.ZodString, string, string>>;
10
+ }, "strip", z.ZodTypeAny, {
11
+ work_type: "Feature" | "Bug Fix" | "Refactor" | "Performance" | "Security" | "Business Rule";
12
+ files: string[];
13
+ read_content: boolean;
14
+ force_agents: AgentName[];
15
+ workspace_root?: string | undefined;
16
+ }, {
17
+ work_type: "Feature" | "Bug Fix" | "Refactor" | "Performance" | "Security" | "Business Rule";
18
+ files?: string[] | undefined;
19
+ read_content?: boolean | undefined;
20
+ force_agents?: AgentName[] | undefined;
21
+ workspace_root?: string | undefined;
22
+ }>;
23
+ type Input = z.infer<typeof schema>;
24
+ export interface Evidence {
25
+ file: string;
26
+ agent: AgentName;
27
+ signal: string;
28
+ source: 'content' | 'path';
29
+ confidence: 'high' | 'medium' | 'low';
30
+ truncated?: boolean;
31
+ }
32
+ export interface SelectSquadOutput {
33
+ agents: AgentName[];
34
+ rationale: {
35
+ agent: AgentName;
36
+ reason: string;
37
+ }[];
38
+ evidence: Evidence[];
39
+ low_confidence_files: {
40
+ file: string;
41
+ reason: string;
42
+ }[];
43
+ }
44
+ export declare function selectSquad(input: Input): Promise<SelectSquadOutput>;
45
+ export declare const selectSquadTool: ToolDef<typeof schema>;
46
+ export {};
Binary file
@@ -0,0 +1 @@
1
+ {"version":3,"file":"select-squad.js","sourceRoot":"","sources":["../../src/tools/select-squad.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ import { z } from 'zod';
2
+ import type { ToolDef } from './registry.js';
3
+ declare const schema: z.ZodObject<{
4
+ agent: z.ZodEnum<[import("../config/ownership-matrix.js").AgentName, ...import("../config/ownership-matrix.js").AgentName[]]>;
5
+ files: z.ZodArray<z.ZodEffects<z.ZodString, string, string>, "many">;
6
+ read_content: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
7
+ workspace_root: z.ZodOptional<z.ZodEffects<z.ZodString, string, string>>;
8
+ }, "strip", z.ZodTypeAny, {
9
+ files: string[];
10
+ read_content: boolean;
11
+ agent: import("../config/ownership-matrix.js").AgentName;
12
+ workspace_root?: string | undefined;
13
+ }, {
14
+ files: string[];
15
+ agent: import("../config/ownership-matrix.js").AgentName;
16
+ read_content?: boolean | undefined;
17
+ workspace_root?: string | undefined;
18
+ }>;
19
+ type Input = z.infer<typeof schema>;
20
+ export interface SliceOutput {
21
+ agent: string;
22
+ matched: {
23
+ file: string;
24
+ reasons: string[];
25
+ truncated?: boolean;
26
+ }[];
27
+ unmatched: {
28
+ file: string;
29
+ reason: string;
30
+ }[];
31
+ }
32
+ export declare function sliceFilesForAgent(input: Input): Promise<SliceOutput>;
33
+ export declare const sliceFilesForAgentTool: ToolDef<typeof schema>;
34
+ export {};
Binary file
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slice-files.js","sourceRoot":"","sources":["../../src/tools/slice-files.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ import { z } from 'zod';
2
+ import type { ToolDef } from './registry.js';
3
+ declare const schema: z.ZodObject<{
4
+ plan: z.ZodEffects<z.ZodString, string, string>;
5
+ }, "strip", z.ZodTypeAny, {
6
+ plan: string;
7
+ }, {
8
+ plan: string;
9
+ }>;
10
+ type Input = z.infer<typeof schema>;
11
+ export type ValidationRule = 'GIT_COMMIT_FENCE' | 'GIT_PUSH_FENCE' | 'EMOJI_IN_CODE' | 'IMPL_BEFORE_APPROVAL' | 'NON_ENGLISH_IDENTIFIER';
12
+ export interface ValidationFinding {
13
+ rule: ValidationRule;
14
+ message: string;
15
+ line: number;
16
+ excerpt: string;
17
+ }
18
+ export interface ValidatePlanOutput {
19
+ findings: ValidationFinding[];
20
+ advisory: true;
21
+ }
22
+ export declare function validatePlanText(input: Input): ValidatePlanOutput;
23
+ export declare const validatePlanTextTool: ToolDef<typeof schema>;
24
+ export {};
Binary file
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate-plan-text.js","sourceRoot":"","sources":["../../src/tools/validate-plan-text.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ export declare const MAX_BYTES = 16384;
2
+ export interface SafePathContext {
3
+ rootRealCache: Map<string, string>;
4
+ }
5
+ export declare function createSafePathContext(): SafePathContext;
6
+ /**
7
+ * Resolve a user-supplied file path safely against a workspace root.
8
+ *
9
+ * - When `workspaceRoot` is undefined, returns the path verbatim and the caller
10
+ * MUST treat it as path-only (no fs reads). Still rejects malformed input.
11
+ * - When `workspaceRoot` is set, requires it to be absolute, normalizes both,
12
+ * collapses symlinks via fs.realpath, and asserts the candidate stays inside.
13
+ *
14
+ * Residual TOCTOU risk: a symlink can be swapped between realpath() and fs.open().
15
+ * Acceptable for a single-user dev tool; document if used in a multi-tenant context.
16
+ */
17
+ export declare function resolveSafePath(workspaceRoot: string | undefined, file: string, ctx: SafePathContext): Promise<string>;
18
+ export interface ReadSnippetResult {
19
+ content: string;
20
+ truncated: boolean;
21
+ }
22
+ /**
23
+ * Read up to MAX_BYTES from a previously validated absolute path.
24
+ *
25
+ * Returns null on file-not-found or unreadable (silent).
26
+ * Throws SquadError only if the caller's path-safety contract is violated upstream.
27
+ */
28
+ export declare function readSnippet(absPath: string): Promise<ReadSnippetResult | null>;
Binary file
@@ -0,0 +1 @@
1
+ {"version":3,"file":"path-safety.js","sourceRoot":"","sources":["../../src/util/path-safety.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,71 @@
1
+ {
2
+ "name": "@gempack/squad-mcp",
3
+ "version": "0.3.1",
4
+ "description": "MCP server for the squad-dev workflow: classification, risk scoring, agent selection, advisory orchestration",
5
+ "type": "module",
6
+ "license": "Apache-2.0",
7
+ "author": {
8
+ "name": "Gustavo",
9
+ "email": "next.uh@gmail.com"
10
+ },
11
+ "homepage": "https://github.com/ggemba/squad-mcp#readme",
12
+ "repository": {
13
+ "type": "git",
14
+ "url": "git+https://github.com/ggemba/squad-mcp.git"
15
+ },
16
+ "bugs": {
17
+ "url": "https://github.com/ggemba/squad-mcp/issues"
18
+ },
19
+ "keywords": [
20
+ "mcp",
21
+ "model-context-protocol",
22
+ "claude-code",
23
+ "squad-dev",
24
+ "code-review",
25
+ "agent",
26
+ "advisory",
27
+ "ai"
28
+ ],
29
+ "bin": {
30
+ "squad-mcp": "dist/index.js"
31
+ },
32
+ "main": "dist/index.js",
33
+ "scripts": {
34
+ "build": "tsc",
35
+ "watch": "tsc --watch",
36
+ "start": "node dist/index.js",
37
+ "dev": "tsx src/index.ts",
38
+ "test": "vitest run",
39
+ "test:watch": "vitest",
40
+ "lint": "tsc --noEmit",
41
+ "prepublishOnly": "npm run build"
42
+ },
43
+ "files": [
44
+ "dist",
45
+ "agents",
46
+ "commands",
47
+ "skills",
48
+ ".claude-plugin",
49
+ "README.md",
50
+ "LICENSE",
51
+ "NOTICE",
52
+ "CHANGELOG.md"
53
+ ],
54
+ "engines": {
55
+ "node": ">=20"
56
+ },
57
+ "publishConfig": {
58
+ "access": "public",
59
+ "provenance": true
60
+ },
61
+ "dependencies": {
62
+ "@modelcontextprotocol/sdk": "^1.0.0",
63
+ "zod": "^3.23.0"
64
+ },
65
+ "devDependencies": {
66
+ "@types/node": "^22.0.0",
67
+ "tsx": "^4.19.0",
68
+ "typescript": "^5.6.0",
69
+ "vitest": "^2.1.0"
70
+ }
71
+ }