@arvoretech/hub 0.17.3 → 0.18.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.
@@ -117,7 +117,7 @@ async function checkAndAutoRegenerate(hubDir) {
117
117
  return;
118
118
  }
119
119
  console.log(chalk.yellow("\n Detected outdated configs, auto-regenerating..."));
120
- const { generators: generators2 } = await import("./generate-MZP6TEFI.js");
120
+ const { generators: generators2 } = await import("./generate-HJ5FRZSI.js");
121
121
  const generator = generators2[result.editor];
122
122
  if (!generator) {
123
123
  console.log(chalk.red(` Unknown editor '${result.editor}' in cache. Run 'hub generate' manually.`));
@@ -749,6 +749,18 @@ function buildDesignSection(config) {
749
749
  const parts = [];
750
750
  parts.push(`
751
751
  ## Design System`);
752
+ if (design.enforce && design.skills?.length) {
753
+ const skillList = design.skills.map((s) => `\`${s}\``).join(", ");
754
+ parts.push(`
755
+ **DESIGN ENFORCEMENT \u2014 MANDATORY**
756
+
757
+ Before creating or modifying ANY UI component, page, or visual element:
758
+ 1. Consult the design skill(s): ${skillList}
759
+ 2. Use ONLY the design tokens, colors, spacing, and typography defined in the design system
760
+ 3. Do NOT invent custom styles, colors, or spacing values \u2014 always reference the design tokens
761
+ 4. If a component exists in the design system or component library, use it instead of creating a new one
762
+ 5. After implementing UI changes, verify that the output follows the design system guidelines`);
763
+ }
752
764
  if (design.instructions) {
753
765
  parts.push(`
754
766
  ${design.instructions.trim()}`);
@@ -1538,7 +1550,7 @@ Some MCPs are aggregated behind a proxy (\`${proxyMcp.name}\`). Their tools are
1538
1550
  lines.push(`
1539
1551
  > When you need a capability and are unsure which tool to use, always try \`mcp_search\` first with relevant keywords. The proxy aggregates tools from all upstream MCPs.`);
1540
1552
  }
1541
- const mcpsWithInstructions = mcps.filter((m) => m.instructions && !m.upstreams);
1553
+ const mcpsWithInstructions = mcps.filter((m) => m.instructions);
1542
1554
  if (mcpsWithInstructions.length > 0) {
1543
1555
  lines.push(`
1544
1556
  ### MCP Instructions`);
@@ -136,6 +136,7 @@ interface DesignConfig {
136
136
  libraries?: DesignLibrary[];
137
137
  icons?: string;
138
138
  instructions?: string;
139
+ enforce?: boolean;
139
140
  }
140
141
  interface HubConfig {
141
142
  name: string;
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  generateCommand,
3
3
  generators
4
- } from "./chunk-UAJWXUMU.js";
4
+ } from "./chunk-6XBKSCTE.js";
5
5
  import "./chunk-VMN4KGAK.js";
6
6
  export {
7
7
  generateCommand,
package/dist/index.js CHANGED
@@ -6,7 +6,7 @@ import {
6
6
  horizontalLine,
7
7
  personaCommand,
8
8
  symbols
9
- } from "./chunk-UAJWXUMU.js";
9
+ } from "./chunk-6XBKSCTE.js";
10
10
  import {
11
11
  loadHubConfig,
12
12
  resolveConfigPath
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@arvoretech/hub",
3
- "version": "0.17.3",
3
+ "version": "0.18.1",
4
4
  "description": "CLI for managing AI-aware multi-repository workspaces",
5
5
  "main": "dist/index.js",
6
6
  "type": "module",