forgecraft-mcp 0.1.0 → 0.2.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 (105) hide show
  1. package/README.md +41 -19
  2. package/dist/analyzers/completeness.js +29 -1
  3. package/dist/analyzers/completeness.js.map +1 -1
  4. package/dist/index.js +6 -6
  5. package/dist/index.js.map +1 -1
  6. package/dist/registry/composer.d.ts +6 -2
  7. package/dist/registry/composer.d.ts.map +1 -1
  8. package/dist/registry/composer.js +16 -7
  9. package/dist/registry/composer.js.map +1 -1
  10. package/dist/registry/loader.d.ts.map +1 -1
  11. package/dist/registry/loader.js +41 -9
  12. package/dist/registry/loader.js.map +1 -1
  13. package/dist/registry/mcp-discovery.d.ts +82 -0
  14. package/dist/registry/mcp-discovery.d.ts.map +1 -0
  15. package/dist/registry/mcp-discovery.js +202 -0
  16. package/dist/registry/mcp-discovery.js.map +1 -0
  17. package/dist/registry/renderer.d.ts +14 -4
  18. package/dist/registry/renderer.d.ts.map +1 -1
  19. package/dist/registry/renderer.js +41 -12
  20. package/dist/registry/renderer.js.map +1 -1
  21. package/dist/shared/errors/index.d.ts +4 -0
  22. package/dist/shared/errors/index.d.ts.map +1 -1
  23. package/dist/shared/errors/index.js +6 -0
  24. package/dist/shared/errors/index.js.map +1 -1
  25. package/dist/shared/types.d.ts +98 -8
  26. package/dist/shared/types.d.ts.map +1 -1
  27. package/dist/shared/types.js +77 -0
  28. package/dist/shared/types.js.map +1 -1
  29. package/dist/tools/audit.js +2 -2
  30. package/dist/tools/audit.js.map +1 -1
  31. package/dist/tools/configure-mcp.d.ts +21 -0
  32. package/dist/tools/configure-mcp.d.ts.map +1 -1
  33. package/dist/tools/configure-mcp.js +86 -24
  34. package/dist/tools/configure-mcp.js.map +1 -1
  35. package/dist/tools/convert.js +2 -2
  36. package/dist/tools/convert.js.map +1 -1
  37. package/dist/tools/generate-claude-md.d.ts +29 -3
  38. package/dist/tools/generate-claude-md.d.ts.map +1 -1
  39. package/dist/tools/generate-claude-md.js +58 -27
  40. package/dist/tools/generate-claude-md.js.map +1 -1
  41. package/dist/tools/list.d.ts.map +1 -1
  42. package/dist/tools/list.js +24 -0
  43. package/dist/tools/list.js.map +1 -1
  44. package/dist/tools/refresh-project.d.ts +3 -0
  45. package/dist/tools/refresh-project.d.ts.map +1 -1
  46. package/dist/tools/refresh-project.js +22 -10
  47. package/dist/tools/refresh-project.js.map +1 -1
  48. package/dist/tools/scaffold.d.ts +3 -0
  49. package/dist/tools/scaffold.d.ts.map +1 -1
  50. package/dist/tools/scaffold.js +20 -8
  51. package/dist/tools/scaffold.js.map +1 -1
  52. package/dist/tools/setup-project.d.ts +3 -0
  53. package/dist/tools/setup-project.d.ts.map +1 -1
  54. package/dist/tools/setup-project.js +58 -31
  55. package/dist/tools/setup-project.js.map +1 -1
  56. package/package.json +7 -3
  57. package/templates/analytics/{claude-md.yaml → instructions.yaml} +1 -1
  58. package/templates/analytics/mcp-servers.yaml +10 -0
  59. package/templates/api/{claude-md.yaml → instructions.yaml} +1 -1
  60. package/templates/api/mcp-servers.yaml +12 -0
  61. package/templates/cli/{claude-md.yaml → instructions.yaml} +1 -1
  62. package/templates/cli/mcp-servers.yaml +10 -0
  63. package/templates/data-lineage/instructions.yaml +28 -0
  64. package/templates/data-lineage/mcp-servers.yaml +20 -0
  65. package/templates/data-pipeline/{claude-md.yaml → instructions.yaml} +1 -1
  66. package/templates/data-pipeline/mcp-servers.yaml +12 -0
  67. package/templates/fintech/{claude-md.yaml → instructions.yaml} +1 -1
  68. package/templates/fintech/mcp-servers.yaml +12 -0
  69. package/templates/game/{claude-md.yaml → instructions.yaml} +1 -1
  70. package/templates/game/mcp-servers.yaml +10 -0
  71. package/templates/healthcare/{claude-md.yaml → instructions.yaml} +1 -1
  72. package/templates/healthcare/mcp-servers.yaml +12 -0
  73. package/templates/hipaa/instructions.yaml +41 -0
  74. package/templates/hipaa/mcp-servers.yaml +12 -0
  75. package/templates/infra/{claude-md.yaml → instructions.yaml} +1 -1
  76. package/templates/infra/mcp-servers.yaml +18 -0
  77. package/templates/library/{claude-md.yaml → instructions.yaml} +1 -1
  78. package/templates/library/mcp-servers.yaml +18 -0
  79. package/templates/medallion-architecture/instructions.yaml +41 -0
  80. package/templates/medallion-architecture/mcp-servers.yaml +20 -0
  81. package/templates/ml/{claude-md.yaml → instructions.yaml} +1 -1
  82. package/templates/ml/mcp-servers.yaml +10 -0
  83. package/templates/mobile/{claude-md.yaml → instructions.yaml} +1 -1
  84. package/templates/mobile/mcp-servers.yaml +10 -0
  85. package/templates/observability-xray/instructions.yaml +40 -0
  86. package/templates/observability-xray/mcp-servers.yaml +14 -0
  87. package/templates/realtime/{claude-md.yaml → instructions.yaml} +1 -1
  88. package/templates/realtime/mcp-servers.yaml +12 -0
  89. package/templates/soc2/instructions.yaml +41 -0
  90. package/templates/soc2/mcp-servers.yaml +22 -0
  91. package/templates/social/{claude-md.yaml → instructions.yaml} +1 -1
  92. package/templates/social/mcp-servers.yaml +22 -0
  93. package/templates/state-machine/{claude-md.yaml → instructions.yaml} +1 -1
  94. package/templates/state-machine/mcp-servers.yaml +10 -0
  95. package/templates/universal/hooks.yaml +1 -1
  96. package/templates/universal/{claude-md.yaml → instructions.yaml} +3 -3
  97. package/templates/universal/mcp-servers.yaml +26 -0
  98. package/templates/web-react/{claude-md.yaml → instructions.yaml} +1 -1
  99. package/templates/web-react/mcp-servers.yaml +18 -0
  100. package/templates/web-static/{claude-md.yaml → instructions.yaml} +1 -1
  101. package/templates/web-static/mcp-servers.yaml +18 -0
  102. package/templates/web3/{claude-md.yaml → instructions.yaml} +1 -1
  103. package/templates/web3/mcp-servers.yaml +10 -0
  104. package/templates/zero-trust/instructions.yaml +41 -0
  105. package/templates/zero-trust/mcp-servers.yaml +14 -0
@@ -6,15 +6,15 @@
6
6
  * Works for both new and existing projects.
7
7
  */
8
8
  import { z } from "zod";
9
- import { existsSync, writeFileSync } from "node:fs";
10
- import { join } from "node:path";
9
+ import { existsSync, writeFileSync, mkdirSync } from "node:fs";
10
+ import { join, dirname } from "node:path";
11
11
  import yaml from "js-yaml";
12
- import { ALL_TAGS, CONTENT_TIERS } from "../shared/types.js";
12
+ import { ALL_TAGS, CONTENT_TIERS, ALL_OUTPUT_TARGETS, OUTPUT_TARGET_CONFIGS, DEFAULT_OUTPUT_TARGET } from "../shared/types.js";
13
13
  import { analyzeProject, analyzeDescription } from "../analyzers/package-json.js";
14
14
  import { checkCompleteness } from "../analyzers/completeness.js";
15
15
  import { loadAllTemplatesWithExtras, loadUserOverrides } from "../registry/loader.js";
16
16
  import { composeTemplates } from "../registry/composer.js";
17
- import { renderClaudeMd } from "../registry/renderer.js";
17
+ import { renderInstructionFile } from "../registry/renderer.js";
18
18
  import { createLogger } from "../shared/logger/index.js";
19
19
  const logger = createLogger("tools/setup-project");
20
20
  /** Minimum confidence to auto-suggest a tag from code analysis. */
@@ -44,12 +44,17 @@ export const setupProjectSchema = z.object({
44
44
  .boolean()
45
45
  .default(false)
46
46
  .describe("If true, return the setup plan and generated config without writing files."),
47
+ output_targets: z
48
+ .array(z.enum(ALL_OUTPUT_TARGETS))
49
+ .default(["claude"])
50
+ .describe("AI assistant targets to generate instruction files for. Options: claude, cursor, copilot, windsurf, cline, aider. Defaults to ['claude']."),
47
51
  });
48
52
  // ── Handler ──────────────────────────────────────────────────────────
49
53
  export async function setupProjectHandler(args) {
50
54
  const projectDir = args.project_dir;
51
55
  const projectName = args.project_name ?? inferProjectName(projectDir);
52
56
  const tier = (args.tier ?? "recommended");
57
+ const outputTargets = (args.output_targets ?? [DEFAULT_OUTPUT_TARGET]);
53
58
  logger.info("Setup project starting", { projectDir, tier, dryRun: args.dry_run });
54
59
  // ── Step 1: Analyze project state ──────────────────────────────
55
60
  const analysis = analyzeProjectState(projectDir, args.description);
@@ -64,24 +69,29 @@ export async function setupProjectHandler(args) {
64
69
  // ── Step 6: Format response ────────────────────────────────────
65
70
  const configYaml = yaml.dump(config, { lineWidth: 100, noRefs: true });
66
71
  if (args.dry_run) {
67
- return { content: [{ type: "text", text: buildDryRunOutput(analysis, finalTags, composed, configYaml, tier) }] };
72
+ return { content: [{ type: "text", text: buildDryRunOutput(analysis, finalTags, composed, configYaml, tier, outputTargets) }] };
68
73
  }
69
74
  // ── Step 7: Write config file ──────────────────────────────────
70
75
  const configPath = join(projectDir, "forgecraft.yaml");
71
76
  writeFileSync(configPath, configYaml, "utf-8");
72
- // ── Step 8: Generate CLAUDE.md if needed ───────────────────────
73
- const claudeMdPath = join(projectDir, "CLAUDE.md");
77
+ // ── Step 8: Generate instruction files for all targets ─────────
74
78
  const context = { projectName, language: "typescript", tags: finalTags };
75
- const claudeContent = renderClaudeMd(composed.claudeMdBlocks, context);
76
- let claudeAction;
77
- if (analysis.hasClaude) {
78
- claudeAction = "preserved (use generate_claude_md with merge_with_existing to update)";
79
- }
80
- else {
81
- writeFileSync(claudeMdPath, claudeContent, "utf-8");
82
- claudeAction = "created";
79
+ const filesWritten = [];
80
+ for (const target of outputTargets) {
81
+ const targetConfig = OUTPUT_TARGET_CONFIGS[target];
82
+ const outputPath = targetConfig.directory
83
+ ? join(projectDir, targetConfig.directory, targetConfig.filename)
84
+ : join(projectDir, targetConfig.filename);
85
+ if (existsSync(outputPath)) {
86
+ // Preserve existing instruction files
87
+ continue;
88
+ }
89
+ const content = renderInstructionFile(composed.instructionBlocks, context, target);
90
+ mkdirSync(dirname(outputPath), { recursive: true });
91
+ writeFileSync(outputPath, content, "utf-8");
92
+ filesWritten.push(`${targetConfig.directory ? targetConfig.directory + "/" : ""}${targetConfig.filename}`);
83
93
  }
84
- const output = buildSetupOutput(analysis, finalTags, composed, configYaml, tier, claudeAction);
94
+ const output = buildSetupOutput(analysis, finalTags, composed, configYaml, tier, filesWritten, outputTargets);
85
95
  return { content: [{ type: "text", text: output }] };
86
96
  }
87
97
  // ── Analysis ─────────────────────────────────────────────────────────
@@ -90,7 +100,14 @@ export async function setupProjectHandler(args) {
90
100
  */
91
101
  function analyzeProjectState(projectDir, description) {
92
102
  const hasPkgJson = existsSync(join(projectDir, "package.json"));
93
- const hasClaude = existsSync(join(projectDir, "CLAUDE.md"));
103
+ // Check for any known instruction file
104
+ const hasInstructionFile = existsSync(join(projectDir, "CLAUDE.md")) ||
105
+ existsSync(join(projectDir, ".cursorrules")) ||
106
+ existsSync(join(projectDir, ".cursor", "rules")) ||
107
+ existsSync(join(projectDir, ".github", "copilot-instructions.md")) ||
108
+ existsSync(join(projectDir, ".windsurfrules")) ||
109
+ existsSync(join(projectDir, ".clinerules")) ||
110
+ existsSync(join(projectDir, "CONVENTIONS.md"));
94
111
  const hasStatusMd = existsSync(join(projectDir, "Status.md"));
95
112
  const hasHooks = existsSync(join(projectDir, ".claude", "hooks"));
96
113
  const hasSrcDir = existsSync(join(projectDir, "src"));
@@ -135,7 +152,7 @@ function analyzeProjectState(projectDir, description) {
135
152
  tagEvidence,
136
153
  existingConfig,
137
154
  completenessGaps,
138
- hasClaude,
155
+ hasInstructionFile,
139
156
  hasStatusMd,
140
157
  hasHooks,
141
158
  };
@@ -188,13 +205,14 @@ function inferProjectName(projectDir) {
188
205
  /**
189
206
  * Build the dry-run preview output.
190
207
  */
191
- function buildDryRunOutput(analysis, tags, composed, configYaml, tier) {
208
+ function buildDryRunOutput(analysis, tags, composed, configYaml, tier, outputTargets) {
192
209
  let text = `# Setup Plan (Dry Run)\n\n`;
193
210
  text += analysis.isNewProject
194
211
  ? `**Project Type:** New project\n`
195
212
  : `**Project Type:** Existing project\n`;
196
213
  text += `**Content Tier:** ${tier}\n`;
197
- text += `**Tags:** ${tags.map((t) => `[${t}]`).join(" ")}\n\n`;
214
+ text += `**Tags:** ${tags.map((t) => `[${t}]`).join(" ")}\n`;
215
+ text += `**Output Targets:** ${outputTargets.map((t) => OUTPUT_TARGET_CONFIGS[t].displayName).join(", ")}\n\n`;
198
216
  // Evidence
199
217
  if (Object.keys(analysis.tagEvidence).length > 0) {
200
218
  text += `## Tag Detection Evidence\n`;
@@ -205,17 +223,18 @@ function buildDryRunOutput(analysis, tags, composed, configYaml, tier) {
205
223
  }
206
224
  // Template summary
207
225
  text += `## What Would Be Generated\n`;
208
- text += `- CLAUDE.md blocks: ${composed.claudeMdBlocks.length}\n`;
226
+ text += `- Instruction blocks: ${composed.instructionBlocks.length}\n`;
209
227
  text += `- Structure entries: ${composed.structureEntries.length}\n`;
210
228
  text += `- NFR sections: ${composed.nfrBlocks.length}\n`;
211
229
  text += `- Hooks: ${composed.hooks.length}\n`;
212
- text += `- Review checklist blocks: ${composed.reviewBlocks.length}\n\n`;
230
+ text += `- Review checklist blocks: ${composed.reviewBlocks.length}\n`;
231
+ text += `- Output targets: ${outputTargets.map((t) => OUTPUT_TARGET_CONFIGS[t].displayName).join(", ")}\n\n`;
213
232
  // Tier breakdown
214
233
  text += `## Content by Tier\n`;
215
- const coreMd = composed.claudeMdBlocks.filter((b) => (b.tier ?? "core") === "core").length;
216
- const recMd = composed.claudeMdBlocks.filter((b) => b.tier === "recommended").length;
217
- const optMd = composed.claudeMdBlocks.filter((b) => b.tier === "optional").length;
218
- text += `- CLAUDE.md: ${coreMd} core, ${recMd} recommended, ${optMd} optional\n`;
234
+ const coreMd = composed.instructionBlocks.filter((b) => (b.tier ?? "core") === "core").length;
235
+ const recMd = composed.instructionBlocks.filter((b) => b.tier === "recommended").length;
236
+ const optMd = composed.instructionBlocks.filter((b) => b.tier === "optional").length;
237
+ text += `- Instruction blocks: ${coreMd} core, ${recMd} recommended, ${optMd} optional\n`;
219
238
  const coreNfr = composed.nfrBlocks.filter((b) => (b.tier ?? "core") === "core").length;
220
239
  const recNfr = composed.nfrBlocks.filter((b) => b.tier === "recommended").length;
221
240
  const optNfr = composed.nfrBlocks.filter((b) => b.tier === "optional").length;
@@ -235,15 +254,22 @@ function buildDryRunOutput(analysis, tags, composed, configYaml, tier) {
235
254
  /**
236
255
  * Build the final setup output after writing files.
237
256
  */
238
- function buildSetupOutput(analysis, tags, composed, configYaml, tier, claudeAction) {
257
+ function buildSetupOutput(analysis, tags, composed, configYaml, tier, filesWritten, outputTargets) {
239
258
  let text = `# Project Setup Complete\n\n`;
240
259
  text += `**Tags:** ${tags.map((t) => `[${t}]`).join(" ")}\n`;
241
- text += `**Content Tier:** ${tier}\n\n`;
260
+ text += `**Content Tier:** ${tier}\n`;
261
+ text += `**Targets:** ${outputTargets.map((t) => OUTPUT_TARGET_CONFIGS[t].displayName).join(", ")}\n\n`;
242
262
  text += `## Files Written\n`;
243
263
  text += `- forgecraft.yaml — project configuration\n`;
244
- text += `- CLAUDE.md ${claudeAction}\n\n`;
264
+ for (const f of filesWritten) {
265
+ text += `- ${f} — created\n`;
266
+ }
267
+ if (filesWritten.length === 0) {
268
+ text += `- (instruction files preserved — use generate_instructions with merge_with_existing to update)\n`;
269
+ }
270
+ text += "\n";
245
271
  text += `## Template Summary\n`;
246
- text += `- ${composed.claudeMdBlocks.length} CLAUDE.md blocks applied\n`;
272
+ text += `- ${composed.instructionBlocks.length} instruction blocks applied\n`;
247
273
  text += `- ${composed.nfrBlocks.length} NFR sections available\n`;
248
274
  text += `- ${composed.hooks.length} hooks available\n`;
249
275
  text += `- ${composed.reviewBlocks.length} review checklist blocks available\n\n`;
@@ -260,11 +286,12 @@ function buildSetupOutput(analysis, tags, composed, configYaml, tier, claudeActi
260
286
  }
261
287
  steps.push("Adjust forgecraft.yaml to add/exclude specific content blocks");
262
288
  steps.push("Use `refresh_project` later if project scope changes");
289
+ steps.push("Add more output targets in forgecraft.yaml (cursor, copilot, windsurf, cline, aider)");
263
290
  if (tier === "core") {
264
291
  steps.push("Upgrade tier to 'recommended' when ready for more patterns: edit forgecraft.yaml");
265
292
  }
266
293
  text += steps.map((s, i) => `${i + 1}. ${s}`).join("\n");
267
- text += `\n\n⚠️ **Restart required** to pick up CLAUDE.md changes.`;
294
+ text += `\n\n⚠️ **Restart may be required** to pick up instruction file changes.`;
268
295
  return text;
269
296
  }
270
297
  //# sourceMappingURL=setup-project.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"setup-project.js","sourceRoot":"","sources":["../../src/tools/setup-project.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"setup-project.js","sourceRoot":"","sources":["../../src/tools/setup-project.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "forgecraft-mcp",
3
- "version": "0.1.0",
3
+ "version": "0.2.1",
4
4
  "mcpName": "io.github.jghiringhelli/forgecraft",
5
5
  "description": "MCP server that gives Claude Code production-grade engineering standards — SOLID, testing, architecture, CI/CD — automatically tailored to your stack",
6
6
  "type": "module",
@@ -25,6 +25,11 @@
25
25
  "model-context-protocol",
26
26
  "claude",
27
27
  "claude-code",
28
+ "github-copilot",
29
+ "copilot",
30
+ "cursor",
31
+ "windsurf",
32
+ "ai-coding",
28
33
  "scaffolding",
29
34
  "project-setup",
30
35
  "developer-tools",
@@ -33,8 +38,7 @@
33
38
  "solid-principles",
34
39
  "testing",
35
40
  "architecture",
36
- "claude-md",
37
- "ai-coding"
41
+ "claude-md"
38
42
  ],
39
43
  "author": "JC",
40
44
  "license": "MIT",
@@ -1,5 +1,5 @@
1
1
  tag: ANALYTICS
2
- section: claude-md
2
+ section: instructions
3
3
  blocks:
4
4
  - id: analytics-architecture
5
5
  tier: recommended
@@ -0,0 +1,10 @@
1
+ tag: ANALYTICS
2
+ section: mcp-servers
3
+ servers:
4
+ - name: chrome-devtools
5
+ description: "Chrome DevTools integration for debugging, profiling, and network inspection"
6
+ command: npx
7
+ args: ["-y", "@anthropic/chrome-devtools-mcp@latest"]
8
+ tags: [WEB-REACT, WEB-STATIC, ANALYTICS]
9
+ category: devtools
10
+ url: "https://github.com/anthropics/anthropic-quickstarts/tree/main/chrome-devtools-mcp"
@@ -1,5 +1,5 @@
1
1
  tag: API
2
- section: claude-md
2
+ section: instructions
3
3
  blocks:
4
4
  - id: api-standards
5
5
  tier: recommended
@@ -0,0 +1,12 @@
1
+ tag: API
2
+ section: mcp-servers
3
+ servers:
4
+ - name: postman
5
+ description: "API testing and collection management via Postman workspace"
6
+ command: npx
7
+ args: ["-y", "@anthropic/mcp-server-postman"]
8
+ tags: [API]
9
+ category: testing
10
+ url: "https://github.com/anthropics/anthropic-quickstarts/tree/main/mcp-server-postman"
11
+ env:
12
+ POSTMAN_API_KEY: ""
@@ -1,5 +1,5 @@
1
1
  tag: CLI
2
- section: claude-md
2
+ section: instructions
3
3
  blocks:
4
4
  - id: cli-standards
5
5
  tier: recommended
@@ -0,0 +1,10 @@
1
+ tag: CLI
2
+ section: mcp-servers
3
+ servers:
4
+ - name: filesystem
5
+ description: "Secure file operations — read, write, search, and directory management with configurable access controls"
6
+ command: npx
7
+ args: ["-y", "@modelcontextprotocol/server-filesystem", "/"]
8
+ tags: [CLI, LIBRARY]
9
+ category: general
10
+ url: "https://github.com/modelcontextprotocol/servers/tree/main/src/filesystem"
@@ -0,0 +1,28 @@
1
+ tag: DATA-LINEAGE
2
+ section: instructions
3
+ blocks:
4
+ - id: field-coverage
5
+ tier: recommended
6
+ title: "100% Field Coverage Enforcement"
7
+ content: |
8
+ ## 100% Field Coverage Enforcement
9
+
10
+ - Every data field must have a documented origin (source system, table, column) and destination (target system, table, column).
11
+ - Maintain a field-level lineage registry: no field enters production without a lineage entry. Enforce this in CI.
12
+ - Track field transformations explicitly: document every rename, type cast, aggregation, join, and filter applied to each field.
13
+ - Implement automated coverage checks: compare the lineage registry against actual schema definitions. Flag any untracked fields as errors.
14
+ - Version lineage metadata alongside code: lineage definitions live in the repository, not in external wikis or spreadsheets.
15
+ - Generate lineage reports per pipeline run: which fields were read, transformed, and written, with row counts and data quality metrics.
16
+
17
+ - id: lineage-tracking-decorators
18
+ tier: recommended
19
+ title: "Lineage Tracking Decorators & Annotations"
20
+ content: |
21
+ ## Lineage Tracking Decorators & Annotations
22
+
23
+ - Use decorators or annotations on transformation functions to declare input fields, output fields, and transformation type.
24
+ - Standardize lineage metadata format: source, transformation, destination, timestamp, pipeline_id, run_id.
25
+ - Emit lineage events at runtime: every transformation step publishes a lineage event to a centralized lineage store.
26
+ - Support both code-level lineage (decorators on functions) and config-level lineage (YAML/JSON transformation specs).
27
+ - Integrate lineage with data quality: when a quality check fails, trace back through lineage to identify the source of bad data.
28
+ - Visualize lineage graphs: generate dependency diagrams showing field-level flow from source to consumption.
@@ -0,0 +1,20 @@
1
+ tag: DATA-LINEAGE
2
+ section: mcp-servers
3
+ servers:
4
+ - name: postgres
5
+ description: "PostgreSQL database inspection — query lineage metadata and schema definitions"
6
+ command: npx
7
+ args: ["-y", "@modelcontextprotocol/server-postgres"]
8
+ tags: [DATA-LINEAGE, DATA-PIPELINE]
9
+ category: database
10
+ env:
11
+ POSTGRES_CONNECTION_STRING: ""
12
+ url: "https://github.com/modelcontextprotocol/servers/tree/main/src/postgres"
13
+
14
+ - name: filesystem
15
+ description: "Filesystem access for lineage definition files and pipeline configurations"
16
+ command: npx
17
+ args: ["-y", "@modelcontextprotocol/server-filesystem"]
18
+ tags: [DATA-LINEAGE, UNIVERSAL]
19
+ category: filesystem
20
+ url: "https://github.com/modelcontextprotocol/servers/tree/main/src/filesystem"
@@ -1,5 +1,5 @@
1
1
  tag: DATA-PIPELINE
2
- section: claude-md
2
+ section: instructions
3
3
  blocks:
4
4
  - id: etl-patterns
5
5
  tier: recommended
@@ -0,0 +1,12 @@
1
+ tag: DATA-PIPELINE
2
+ section: mcp-servers
3
+ servers:
4
+ - name: postgres
5
+ description: "PostgreSQL database inspection, queries, and schema management"
6
+ command: npx
7
+ args: ["-y", "@modelcontextprotocol/server-postgres"]
8
+ tags: [DATA-PIPELINE, API]
9
+ category: database
10
+ env:
11
+ POSTGRES_CONNECTION_STRING: ""
12
+ url: "https://github.com/modelcontextprotocol/servers/tree/main/src/postgres"
@@ -1,5 +1,5 @@
1
1
  tag: FINTECH
2
- section: claude-md
2
+ section: instructions
3
3
  blocks:
4
4
  - id: transaction-integrity
5
5
  tier: recommended
@@ -0,0 +1,12 @@
1
+ tag: FINTECH
2
+ section: mcp-servers
3
+ servers:
4
+ - name: stripe
5
+ description: "Stripe API integration — payments, subscriptions, invoices, and customer management"
6
+ command: npx
7
+ args: ["-y", "@stripe/mcp-server"]
8
+ tags: [FINTECH]
9
+ category: general
10
+ env:
11
+ STRIPE_SECRET_KEY: ""
12
+ url: "https://github.com/stripe/agent-toolkit"
@@ -1,5 +1,5 @@
1
1
  tag: GAME
2
- section: claude-md
2
+ section: instructions
3
3
  blocks:
4
4
  - id: game-loop-timing
5
5
  tier: recommended
@@ -0,0 +1,10 @@
1
+ tag: GAME
2
+ section: mcp-servers
3
+ servers:
4
+ - name: unity-mcp
5
+ description: "Unity Editor integration — scene management, asset control, code generation"
6
+ command: npx
7
+ args: ["-y", "@anthropic/unity-mcp"]
8
+ tags: [GAME]
9
+ category: game-engine
10
+ url: "https://github.com/CoplayDev/unity-mcp"
@@ -1,5 +1,5 @@
1
1
  tag: HEALTHCARE
2
- section: claude-md
2
+ section: instructions
3
3
  blocks:
4
4
  - id: hipaa-compliance
5
5
  tier: recommended
@@ -0,0 +1,12 @@
1
+ tag: HEALTHCARE
2
+ section: mcp-servers
3
+ servers:
4
+ - name: postgres
5
+ description: "PostgreSQL database inspection, queries, and schema management — common backend for EHR/clinical data"
6
+ command: npx
7
+ args: ["-y", "@modelcontextprotocol/server-postgres"]
8
+ tags: [DATA-PIPELINE, API, HEALTHCARE]
9
+ category: database
10
+ env:
11
+ POSTGRES_CONNECTION_STRING: ""
12
+ url: "https://github.com/modelcontextprotocol/servers/tree/main/src/postgres"
@@ -0,0 +1,41 @@
1
+ tag: HIPAA
2
+ section: instructions
3
+ blocks:
4
+ - id: pii-masking
5
+ tier: recommended
6
+ title: "PII Masking & Data Protection"
7
+ content: |
8
+ ## PII Masking & Data Protection
9
+
10
+ - Identify all Personally Identifiable Information (PII) fields at design time using the 18 HIPAA identifiers as a baseline.
11
+ - Implement masking templates for every PII field: full mask for display, partial mask for verification, tokenized for logging.
12
+ - Apply dynamic masking based on user role — clinicians see full data, billing sees partial, analytics sees only de-identified data.
13
+ - Never store raw PII in caches, message queues, or temporary files. Use tokenized references that resolve through a secure lookup service.
14
+ - Validate masking coverage with automated tests: no PII field should reach a log sink, error report, or analytics pipeline unmasked.
15
+ - Maintain a PII field registry as a living document — every new field must be classified before it enters the data model.
16
+
17
+ - id: encryption-checks
18
+ tier: recommended
19
+ title: "Encryption Verification & Key Management"
20
+ content: |
21
+ ## Encryption Verification & Key Management
22
+
23
+ - Enforce AES-256 encryption at rest for all data stores containing PII. Verify encryption status in CI with infrastructure-as-code checks.
24
+ - Require TLS 1.2+ for all data in transit. Reject connections using older protocols at the load balancer level.
25
+ - Use envelope encryption with a managed KMS (AWS KMS, Azure Key Vault, GCP KMS). Never store encryption keys alongside encrypted data.
26
+ - Rotate encryption keys on a defined schedule (90 days minimum). Automate rotation and re-encryption of affected data.
27
+ - Include encryption verification in deployment checklists: database encryption enabled, TLS certificates valid, KMS policies correct.
28
+ - Test encryption boundaries: verify that data crossing service boundaries remains encrypted and that decryption only occurs in authorized services.
29
+
30
+ - id: audit-logging-hipaa
31
+ tier: recommended
32
+ title: "HIPAA Audit Logging"
33
+ content: |
34
+ ## HIPAA Audit Logging
35
+
36
+ - Log every access to PII: who, when, what data, from where, and the business justification.
37
+ - Store audit logs in an append-only, tamper-evident store separate from application databases.
38
+ - Retain audit logs for a minimum of 6 years per HIPAA requirements.
39
+ - Generate automated audit reports: access frequency per user, unusual patterns, after-hours access.
40
+ - Implement real-time alerting for anomalous access: bulk record access, out-of-role access, VIP record access.
41
+ - Include a unique correlation ID in every request touching PII for end-to-end traceability across services.
@@ -0,0 +1,12 @@
1
+ tag: HIPAA
2
+ section: mcp-servers
3
+ servers:
4
+ - name: postgres
5
+ description: "PostgreSQL database inspection and schema management — common backend for PHI/PII storage"
6
+ command: npx
7
+ args: ["-y", "@modelcontextprotocol/server-postgres"]
8
+ tags: [HIPAA, HEALTHCARE, API]
9
+ category: database
10
+ env:
11
+ POSTGRES_CONNECTION_STRING: ""
12
+ url: "https://github.com/modelcontextprotocol/servers/tree/main/src/postgres"
@@ -1,5 +1,5 @@
1
1
  tag: INFRA
2
- section: claude-md
2
+ section: instructions
3
3
  blocks:
4
4
  - id: iac-containers
5
5
  tier: recommended
@@ -0,0 +1,18 @@
1
+ tag: INFRA
2
+ section: mcp-servers
3
+ servers:
4
+ - name: docker
5
+ description: "Docker container and image management via MCP"
6
+ command: npx
7
+ args: ["-y", "mcp-server-docker"]
8
+ tags: [INFRA]
9
+ category: deployment
10
+ url: "https://github.com/ckreiling/mcp-server-docker"
11
+
12
+ - name: kubernetes
13
+ description: "Kubernetes cluster management — pods, deployments, services"
14
+ command: npx
15
+ args: ["-y", "mcp-server-kubernetes"]
16
+ tags: [INFRA]
17
+ category: deployment
18
+ url: "https://github.com/strowk/mcp-k8s-go"
@@ -1,5 +1,5 @@
1
1
  tag: LIBRARY
2
- section: claude-md
2
+ section: instructions
3
3
  blocks:
4
4
  - id: library-standards
5
5
  tier: recommended
@@ -0,0 +1,18 @@
1
+ tag: LIBRARY
2
+ section: mcp-servers
3
+ servers:
4
+ - name: filesystem
5
+ description: "Secure file operations — read, write, search, and directory management with configurable access controls"
6
+ command: npx
7
+ args: ["-y", "@modelcontextprotocol/server-filesystem", "/"]
8
+ tags: [CLI, LIBRARY]
9
+ category: general
10
+ url: "https://github.com/modelcontextprotocol/servers/tree/main/src/filesystem"
11
+
12
+ - name: npm-search
13
+ description: "Search npm registry for packages, check versions, and inspect dependencies"
14
+ command: npx
15
+ args: ["-y", "mcp-server-npm-search"]
16
+ tags: [LIBRARY]
17
+ category: documentation
18
+ url: "https://github.com/nicholasgriffintn/npm-search-mcp-server"
@@ -0,0 +1,41 @@
1
+ tag: MEDALLION-ARCHITECTURE
2
+ section: instructions
3
+ blocks:
4
+ - id: bronze-layer
5
+ tier: recommended
6
+ title: "Bronze Layer — Immutable Raw Ingestion"
7
+ content: |
8
+ ## Bronze Layer — Immutable Raw Ingestion
9
+
10
+ - Bronze is the landing zone. Data arrives exactly as received from source systems — no transformations, no filtering, no deduplication.
11
+ - Store Bronze data in append-only, immutable formats (Parquet, Delta Lake, Iceberg). Never overwrite or delete Bronze records.
12
+ - Include ingestion metadata on every record: source_system, ingested_at, batch_id, file_origin, raw_checksum.
13
+ - Partition Bronze tables by ingestion date for efficient reprocessing. Never partition by business keys at this layer.
14
+ - Implement schema-on-read: Bronze accepts any schema from source. Schema validation happens at the Silver promotion step.
15
+ - Retain Bronze data indefinitely (or per legal retention policy). Bronze is the recovery point for all downstream reprocessing.
16
+
17
+ - id: silver-layer
18
+ tier: recommended
19
+ title: "Silver Layer — Validated & Conformed"
20
+ content: |
21
+ ## Silver Layer — Validated & Conformed
22
+
23
+ - Silver applies data quality rules: type validation, null checks, range constraints, referential integrity, deduplication.
24
+ - Every record in Silver must pass defined quality gates. Records failing validation are routed to a quarantine table, not dropped.
25
+ - Conform naming conventions: standardize column names, date formats, currency codes, and enum values across all Silver tables.
26
+ - Track record lineage: every Silver record links back to its Bronze source via source_record_id and bronze_batch_id.
27
+ - Apply slowly changing dimension (SCD) Type 2 for reference data: maintain history with effective_from and effective_to timestamps.
28
+ - Silver tables define explicit schemas enforced on write. Schema changes require a migration plan and backward compatibility check.
29
+
30
+ - id: gold-layer
31
+ tier: recommended
32
+ title: "Gold Layer — Aggregated & Business-Ready"
33
+ content: |
34
+ ## Gold Layer — Aggregated & Business-Ready
35
+
36
+ - Gold tables are purpose-built for specific business use cases: dashboards, ML features, API responses, reports.
37
+ - Apply business logic at the Gold layer: aggregations, joins, calculated fields, business rules, KPI definitions.
38
+ - Optimize Gold tables for read performance: pre-aggregate, denormalize, partition by access patterns.
39
+ - Document every Gold table with its business purpose, refresh cadence, source Silver tables, and SLA.
40
+ - Version Gold table definitions: changes to aggregation logic or business rules are tracked, reviewed, and deployed like code.
41
+ - Implement data contracts for Gold consumers: define expected schema, update frequency, and quality guarantees.