@arvoretech/hub 0.1.0 → 0.1.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 (2) hide show
  1. package/README.md +343 -0
  2. package/package.json +1 -1
package/README.md ADDED
@@ -0,0 +1,343 @@
1
+ # Repo Hub
2
+
3
+ **You describe a feature. Your AI codes it, reviews it, tests it, and opens a pull request.**
4
+
5
+ Repo Hub is a configuration file (`hub.yaml`) that teaches your AI coding assistant how your company builds software. You declare your repositories, your tools, and your development workflow. The AI follows it — from understanding requirements to delivering a tested PR.
6
+
7
+ Think of it like a **docker-compose for AI-powered development**. Instead of defining containers, you define how your AI should work.
8
+
9
+ ```
10
+ You: "Add profile editing to user settings"
11
+
12
+ AI refines requirements → writes backend + frontend → reviews code → runs tests → opens PR → notifies Slack
13
+
14
+ You: review the PR
15
+ ```
16
+
17
+ Built and battle-tested by [Arvore](https://arvore.com.br), where 10 engineers use this every day to ship real software.
18
+
19
+ ---
20
+
21
+ ## The 30-second version
22
+
23
+ **Without Repo Hub**, your AI coding assistant:
24
+ - Sees one repo at a time (doesn't know the API changed when editing the frontend)
25
+ - Does one thing at a time (you manually orchestrate every step)
26
+ - Can't use your tools (can't check logs, query databases, or run browser tests)
27
+
28
+ **With Repo Hub**, you write a config file that tells the AI:
29
+ - **Which repos** to work on (and it sees all of them at once)
30
+ - **Which tools** it can use (databases, monitoring, browser testing, etc.)
31
+ - **What workflow** to follow (refine → code → review → test → deliver)
32
+
33
+ One CLI command generates the config your editor needs. Done.
34
+
35
+ ---
36
+
37
+ ## What is this, actually?
38
+
39
+ ### It's a YAML file
40
+
41
+ Everything starts with `hub.yaml`. Here's a minimal example:
42
+
43
+ ```yaml
44
+ name: my-company
45
+
46
+ repos:
47
+ - name: api
48
+ url: git@github.com:company/api.git
49
+ tech: nestjs
50
+ - name: frontend
51
+ url: git@github.com:company/frontend.git
52
+ tech: nextjs
53
+
54
+ mcps:
55
+ - name: postgresql
56
+ - name: playwright
57
+
58
+ workflow:
59
+ pipeline:
60
+ - step: refinement
61
+ - step: coding
62
+ - step: review
63
+ - step: qa
64
+ - step: deliver
65
+ actions: [create-pr, notify-slack]
66
+ ```
67
+
68
+ ### It becomes editor instructions
69
+
70
+ When you run `hub generate --editor <editor>`, the CLI reads your YAML and produces config files your editor understands:
71
+
72
+ ```
73
+ hub generate --editor cursor
74
+ → .cursor/rules/orchestrator.mdc (the AI's playbook)
75
+ → .cursor/agents/*.md (specialized AI roles)
76
+ → .cursor/skills/*.md (coding patterns and conventions)
77
+ → .cursor/mcp.json (tool connections)
78
+
79
+ hub generate --editor kiro
80
+ → .kiro/steering/orchestrator.md (the AI's playbook)
81
+ → .kiro/steering/agent-*.md (specialized AI roles)
82
+ → .kiro/skills/*.md (coding patterns and conventions)
83
+ → .kiro/settings/mcp.json (tool connections)
84
+ → AGENTS.md (standard agents.md)
85
+ ```
86
+
87
+ ### Your editor is the runtime
88
+
89
+ There's no server. No daemon. No separate process. Your AI editor (Cursor, Claude Code, Kiro) reads the generated config and follows the workflow automatically when you ask it to build something.
90
+
91
+ ---
92
+
93
+ ## Key concepts (the jargon, explained)
94
+
95
+ | Concept | What it means | Analogy |
96
+ |---------|--------------|---------|
97
+ | **Agents** | Specialized AI roles — one refines, one codes, one reviews, one tests | Team members with specific jobs |
98
+ | **MCPs** | Plugins that connect AI to your tools (databases, monitoring, etc.) | Browser extensions, but for AI |
99
+ | **Skills** | Written docs that teach AI your coding patterns and conventions | Onboarding docs for a new hire |
100
+ | **Pipeline** | The step-by-step workflow the AI follows for every feature | A CI/CD pipeline, but for the entire dev process |
101
+ | **Hub Workspace** | A folder containing all your repos (each keeps its own git) | A VS Code workspace, but for AI |
102
+
103
+ ### What are MCPs?
104
+
105
+ MCP stands for **Model Context Protocol**. In practice, it's a standard way to give AI access to external tools. Instead of you copy-pasting database schemas or log outputs, the AI queries them directly.
106
+
107
+ Examples:
108
+ - **Database MCP**: AI queries your PostgreSQL schema to write correct migrations
109
+ - **Datadog MCP**: AI reads error logs to debug a production issue
110
+ - **Playwright MCP**: AI opens a browser and clicks through your app to test it
111
+ - **AWS Secrets MCP**: AI reads environment config without you sharing credentials
112
+
113
+ ---
114
+
115
+ ## Quick Start
116
+
117
+ ```bash
118
+ npx @arvoretech/hub init my-hub
119
+ cd my-hub
120
+
121
+ npx @arvoretech/hub add-repo git@github.com:company/api.git --tech nestjs
122
+ npx @arvoretech/hub add-repo git@github.com:company/frontend.git --tech nextjs
123
+
124
+ npx @arvoretech/hub setup
125
+
126
+ npx @arvoretech/hub generate --editor cursor
127
+ ```
128
+
129
+ Open in your editor (Cursor, Kiro, etc.). Describe a feature. Watch it happen.
130
+
131
+ ---
132
+
133
+ ## What does the AI actually do?
134
+
135
+ Here's a concrete example of what happens when you say _"Add profile editing to the user settings page"_:
136
+
137
+ ```
138
+ 1. REFINEMENT
139
+ The AI asks: "Should users be able to change their email?
140
+ Should there be an avatar upload? What fields are editable?"
141
+ → Writes a requirements doc
142
+
143
+ 2. CODING (parallel)
144
+ Backend agent: Creates PATCH /users/profile endpoint
145
+ Frontend agent: Builds the settings form with validation
146
+ → Each writes in the correct repo, following your patterns
147
+
148
+ 3. REVIEW
149
+ Review agent: Checks code against the requirements doc
150
+ "The frontend doesn't handle the avatar upload error case"
151
+ → Coding agent fixes it
152
+
153
+ 4. QA
154
+ QA agent: Opens a browser, fills in the form, submits, verifies
155
+ → Reports pass/fail with screenshots
156
+
157
+ 5. DELIVERY
158
+ Creates PRs in each repo
159
+ Posts summary in #eng-prs on Slack
160
+ Updates the task in Linear
161
+ ```
162
+
163
+ **You review the PRs. That's your job now.**
164
+
165
+ ---
166
+
167
+ ## Not a monorepo
168
+
169
+ This is important: **your repos stay completely independent**. Their own git history, their own branches, their own PRs. Repo Hub doesn't merge anything.
170
+
171
+ It's a **workspace layer** — a folder that contains your repos side by side so the AI can see them all at once. Like opening multiple projects in VS Code, but with shared context.
172
+
173
+ - No migration needed
174
+ - No shared build system
175
+ - No lock-in
176
+
177
+ ---
178
+
179
+ ## The full hub.yaml
180
+
181
+ Here's what a production config looks like:
182
+
183
+ ```yaml
184
+ name: my-company
185
+
186
+ repos:
187
+ - name: api
188
+ path: ./api
189
+ url: git@github.com:company/api.git
190
+ tech: nestjs
191
+ env_file: .env
192
+ commands:
193
+ install: pnpm install
194
+ dev: pnpm dev
195
+ build: pnpm build
196
+ lint: pnpm lint
197
+ test: pnpm test
198
+ skills: [backend-nestjs]
199
+
200
+ - name: frontend
201
+ path: ./frontend
202
+ url: git@github.com:company/frontend.git
203
+ tech: nextjs
204
+ env_file: .env.local
205
+ commands:
206
+ install: pnpm install
207
+ dev: pnpm dev
208
+ build: pnpm build
209
+
210
+ services:
211
+ - name: postgres
212
+ image: postgres:16
213
+ port: 5432
214
+ - name: redis
215
+ image: redis:7-alpine
216
+ port: 6379
217
+
218
+ env:
219
+ profiles:
220
+ local:
221
+ description: "Local development"
222
+ staging:
223
+ aws_profile: my-company-stg
224
+ secrets:
225
+ api: api-staging-secret
226
+ prod:
227
+ aws_profile: my-company-prd
228
+ secrets:
229
+ api: api-prod-secret
230
+
231
+ mcps:
232
+ - name: postgresql
233
+ package: "@arvoretech/postgresql-mcp"
234
+ - name: playwright
235
+ package: "@playwright/mcp"
236
+ - name: datadog
237
+ package: "@arvoretech/datadog-mcp"
238
+
239
+ integrations:
240
+ github:
241
+ pr_branch_pattern: "{linear_id}-{slug}"
242
+ slack:
243
+ channels:
244
+ prs: "#eng-prs"
245
+ linear:
246
+ team: Engineering
247
+
248
+ workflow:
249
+ pipeline:
250
+ - step: refinement
251
+ agent: refinement
252
+ output: refinement.md
253
+ - step: coding
254
+ agents: [coding-backend, coding-frontend]
255
+ parallel: true
256
+ - step: review
257
+ agent: code-reviewer
258
+ output: code-review.md
259
+ - step: qa
260
+ agents: [qa-backend, qa-frontend]
261
+ parallel: true
262
+ tools: [playwright]
263
+ - step: deliver
264
+ actions: [create-pr, notify-slack]
265
+ ```
266
+
267
+ ---
268
+
269
+ ## Available MCPs
270
+
271
+ | MCP | What AI can do with it |
272
+ |-----|----------------------|
273
+ | `@arvoretech/postgresql-mcp` | Query your database schema and data (read-only) |
274
+ | `@arvoretech/mysql-mcp` | Query MySQL databases (read-only) |
275
+ | `@arvoretech/aws-secrets-manager-mcp` | Read environment configuration and secrets |
276
+ | `@arvoretech/datadog-mcp` | Read metrics, logs, and traces for debugging |
277
+ | `@arvoretech/npm-registry-mcp` | Check package security and versions |
278
+ | `@arvoretech/tempmail-mcp` | Create temporary emails for E2E test flows |
279
+ | `@playwright/mcp` | Control a browser to test your app |
280
+
281
+ MCPs are maintained at [arvore-mcp-servers](https://github.com/arvoreeducacao/arvore-mcp-servers).
282
+
283
+ ---
284
+
285
+ ## Supported Editors
286
+
287
+ | Editor | Status | Command |
288
+ |--------|--------|---------|
289
+ | Cursor | Supported | `hub generate --editor cursor` |
290
+ | Claude Code | Supported | `hub generate --editor claude-code` |
291
+ | Kiro | Supported | `hub generate --editor kiro` |
292
+ | Windsurf | Planned | — |
293
+ | Copilot Workspace | Planned | — |
294
+
295
+ ---
296
+
297
+ ## Real Results
298
+
299
+ At Arvore, Repo Hub powers our entire development workflow:
300
+
301
+ - **10x productivity** with a team 3x smaller
302
+ - **9 repositories** managed as a single AI-aware workspace
303
+ - **11 specialized AI roles** collaborating in structured pipelines
304
+ - **19 tool connections** giving AI access to databases, monitoring, secrets, and testing
305
+
306
+ This is not a demo. We ship production software with this every week.
307
+
308
+ ---
309
+
310
+ ## Project Structure
311
+
312
+ ```
313
+ repo-hub-manifest/
314
+ ├── packages/cli/ # @arvoretech/hub CLI
315
+ ├── agents/ # Agent templates
316
+ ├── skills/ # Built-in coding pattern libraries
317
+ ├── docs/ # Reference documentation
318
+ └── examples/ # Example configurations
319
+ ├── arvore/ # Real-world: 9 repos, full pipeline
320
+ └── nestjs-nextjs/ # Minimal: 2 repos
321
+ ```
322
+
323
+ ---
324
+
325
+ ## Contributing
326
+
327
+ We welcome contributions. Areas where help is needed:
328
+
329
+ - **Editor adapters** — Windsurf, Copilot Workspace
330
+ - **Skills** — More frameworks (Go, Python/Django, Java/Spring, Vue, Svelte)
331
+ - **Agent patterns** — New roles, better prompts, workflow variations
332
+ - **MCPs** — New tool integrations
333
+ - **Documentation** — Guides, tutorials, videos
334
+
335
+ ## License
336
+
337
+ MIT
338
+
339
+ ---
340
+
341
+ <p align="center">
342
+ Built with AI, for AI, by <a href="https://arvore.com.br">Arvore</a>
343
+ </p>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@arvoretech/hub",
3
- "version": "0.1.0",
3
+ "version": "0.1.1",
4
4
  "description": "CLI for managing AI-aware multi-repository workspaces",
5
5
  "main": "dist/index.js",
6
6
  "type": "module",