agentsys 5.3.6 → 5.4.0

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 (40) hide show
  1. package/.agnix.toml +17 -7
  2. package/.claude-plugin/marketplace.json +13 -2
  3. package/.claude-plugin/plugin.json +1 -1
  4. package/.gitmodules +3 -0
  5. package/AGENTS.md +4 -4
  6. package/CHANGELOG.md +28 -0
  7. package/README.md +46 -5
  8. package/lib/adapter-transforms.js +3 -1
  9. package/package.json +1 -1
  10. package/site/assets/css/main.css +39 -1
  11. package/site/assets/js/main.js +24 -0
  12. package/site/content.json +26 -25
  13. package/site/index.html +90 -15
  14. package/site/ux-spec.md +9 -9
  15. package/agent-knowledge/AGENTS.md +0 -231
  16. package/agent-knowledge/acp-with-codex-gemini-copilot-claude.md +0 -504
  17. package/agent-knowledge/ai-cli-advanced-integration-patterns.md +0 -670
  18. package/agent-knowledge/ai-cli-non-interactive-programmatic-usage.md +0 -1394
  19. package/agent-knowledge/all-in-one-plus-modular-packages.md +0 -576
  20. package/agent-knowledge/cli-browser-automation-agents.md +0 -936
  21. package/agent-knowledge/github-org-project-management.md +0 -319
  22. package/agent-knowledge/github-org-structure-patterns.md +0 -268
  23. package/agent-knowledge/kiro-supervised-autopilot.md +0 -400
  24. package/agent-knowledge/multi-product-org-docs.md +0 -622
  25. package/agent-knowledge/oss-org-naming-patterns.md +0 -368
  26. package/agent-knowledge/resources/acp-with-codex-gemini-copilot-claude-sources.json +0 -408
  27. package/agent-knowledge/resources/ai-cli-non-interactive-programmatic-usage-sources.json +0 -500
  28. package/agent-knowledge/resources/all-in-one-plus-modular-packages-sources.json +0 -310
  29. package/agent-knowledge/resources/cli-browser-automation-agents-sources.json +0 -428
  30. package/agent-knowledge/resources/github-org-project-management-sources.json +0 -239
  31. package/agent-knowledge/resources/github-org-structure-patterns-sources.json +0 -293
  32. package/agent-knowledge/resources/kiro-supervised-autopilot-sources.json +0 -135
  33. package/agent-knowledge/resources/multi-product-org-docs-sources.json +0 -514
  34. package/agent-knowledge/resources/oss-org-naming-patterns-sources.json +0 -458
  35. package/agent-knowledge/resources/skill-plugin-distribution-patterns-sources.json +0 -290
  36. package/agent-knowledge/resources/terminal-browsers-agent-automation-sources.json +0 -758
  37. package/agent-knowledge/resources/web-session-persistence-cli-agents-sources.json +0 -528
  38. package/agent-knowledge/skill-plugin-distribution-patterns.md +0 -661
  39. package/agent-knowledge/terminal-browsers-agent-automation.md +0 -776
  40. package/agent-knowledge/web-session-persistence-cli-agents.md +0 -1352
@@ -1,622 +0,0 @@
1
- # Learning Guide: Documentation & Website Architecture for Multi-Product Open Source Organizations
2
-
3
- **Generated**: 2026-02-21
4
- **Sources**: 42 resources analyzed (5 fetched live, 37 from verified domain knowledge)
5
- **Depth**: deep
6
-
7
- ## Prerequisites
8
-
9
- - Familiarity with static site generators (any one of: Next.js, Astro, VitePress)
10
- - Basic understanding of DNS, hosting, and GitHub Pages
11
- - Understanding of the difference between a "product" and a "feature/plugin"
12
-
13
- ## TL;DR
14
-
15
- - Multi-product orgs use one of three patterns: **unified portal** (HashiCorp), **separate branded sites** (JetBrains), or **hub-and-spoke** (Vercel). The right choice depends on how related the products are.
16
- - For small orgs (1-5 people), a single site with product tabs/sections (Mintlify, Starlight, or Docusaurus multi-instance) beats maintaining separate sites.
17
- - The key architectural decision is: **does each product deserve its own domain/subdomain, or are they sections of one site?** If a product has its own CLI, its own users, and could exist independently, it deserves its own site (or at minimum a subdomain).
18
- - Plugin/extension catalogs need: search, categories, install commands, compatibility badges, and usage stats. A simple JSON registry with a static frontend works at small scale.
19
- - SEO strongly favors a unified domain with product subpaths over scattered subdomains for small orgs.
20
-
21
- ## Core Concepts
22
-
23
- ### 1. The Three Architecture Patterns
24
-
25
- Multi-product organizations structure their documentation using one of three fundamental patterns:
26
-
27
- **Pattern A: Unified Developer Portal**
28
- One site, all products share navigation, search, and design system. Products are sections/tabs.
29
-
30
- - Example: **HashiCorp Developer** (developer.hashicorp.com) - Terraform, Vault, Consul, Nomad, Packer, Waypoint all under one roof. Product switcher in sidebar. Unified search across all products. Shared tutorials section.
31
- - Example: **Supabase** (supabase.com/docs) - Database, Auth, Storage, Edge Functions, Realtime, Vector are all sections of one docs site with left sidebar navigation.
32
- - Example: **Stripe** (stripe.com/docs) - Payments, Billing, Connect, Terminal, Identity all under one docs domain.
33
- - Best for: Products that share users and are often used together.
34
-
35
- **Pattern B: Separate Branded Sites**
36
- Each product gets its own domain and fully independent docs site.
37
-
38
- - Example: **JetBrains** - IntelliJ (jetbrains.com/help/idea/), WebStorm (jetbrains.com/help/webstorm/), Rider (jetbrains.com/help/rider/). Each has its own sidebar, its own structure, its own search. A top-level product picker links between them.
39
- - Example: **Atlassian** - Jira, Confluence, Bitbucket each have separate doc sites under atlassian.com/software/*/docs.
40
- - Best for: Products with distinct user bases that rarely overlap.
41
-
42
- **Pattern C: Hub-and-Spoke**
43
- A central landing site links to independent product sites, each with their own domain.
44
-
45
- - Example: **Vercel ecosystem** - vercel.com/docs is the hub. Next.js lives at nextjs.org/docs (completely separate site, separate design). Turbo at turbo.build/repo/docs. SWC at swc.rs. Each product has its own identity, but Vercel docs cross-links to them.
46
- - Example: **oven-sh/Bun** - Single product but uses hub-and-spoke internally: bun.sh/docs is one site with cards linking to Runtime, Package Manager, Test Runner, Bundler as distinct sections with their own sidebar trees.
47
- - Best for: Products that have independent brand identities but share an organizational umbrella.
48
-
49
- ### 2. Unified Landing Page vs Per-Product Sites
50
-
51
- **Decision framework:**
52
-
53
- | Factor | Unified Site | Separate Sites |
54
- |--------|-------------|----------------|
55
- | Products share users | Strong yes | Not needed |
56
- | Products used together | Strong yes | Not needed |
57
- | Products have independent brands | Awkward | Natural |
58
- | Team size < 5 | Practical | Maintenance burden |
59
- | SEO authority | Concentrated | Diluted |
60
- | Design consistency | Automatic | Requires effort |
61
- | Independent release cycles | Harder | Natural |
62
-
63
- **The hybrid approach** (most common for small orgs): One landing page at org-domain.com that acts as a "portal" with cards/links to each product. Products that are closely related share a docs site. Products with independent identity get subdomains or separate domains.
64
-
65
- For **agent-sh** specifically, a recommended structure:
66
-
67
- ```
68
- agent-sh.dev/ # Org landing page (portal)
69
- /docs/agentsys/ # Marketplace & installer docs
70
- /docs/plugins/ # Plugin catalog (next-task, ship, etc.)
71
- /docs/agent-core/ # Infrastructure docs
72
- agnix.dev/ # Separate domain - it's a full product
73
- /docs/ # CLI, LSP, IDE extension docs
74
- /docs/agentsys-integration/ # How to use agnix via agentsys
75
- web-ctl.dev/ (or agent-sh.dev/docs/web-ctl/) # Depends on independence level
76
- ```
77
-
78
- ### 3. Shared Navigation Patterns
79
-
80
- **Product Switcher**: A dropdown or tab bar at the top of the docs site that lets you jump between products. HashiCorp uses a persistent header with product icons. Supabase uses sidebar grouping.
81
-
82
- **Cross-Product Discovery**: Key patterns:
83
- - **"Related products" cards** at the bottom of pages (Stripe does this well)
84
- - **Unified search** that returns results from all products with product badges
85
- - **Getting started guides** that show how products work together
86
- - **Architecture diagrams** showing how products compose
87
-
88
- **Shared design system**: Critical for perceived cohesion. All products should use:
89
- - Same typography, colors, code block styling
90
- - Same component library (callouts, tabs, cards)
91
- - Same header/footer with org branding
92
- - Product-specific accent colors for differentiation
93
-
94
- ### 4. Documentation Platforms Comparison for Multi-Product
95
-
96
- | Platform | Multi-Product Support | Best For | Limitations |
97
- |----------|----------------------|----------|-------------|
98
- | **Docusaurus** | Multi-instance docs plugin; each product is a "docs instance" with independent versioning and sidebar | Meta-scale orgs, React ecosystem | Config complexity grows with products |
99
- | **Starlight (Astro)** | Groups in sidebar config, multiple content collections | Performance-focused sites, Markdown-heavy | No built-in multi-instance like Docusaurus |
100
- | **Nextra** | File-based routing with `_meta.json` per directory | Next.js projects, simple multi-section | Less opinionated about multi-product |
101
- | **VitePress** | Multiple sidebars via route-based config, each product path gets its own sidebar | Vue ecosystem, fast builds | Manual sidebar config per product |
102
- | **Mintlify** | Tabs + groups in `mint.json`; navigation anchors for product switching | Startups, API-heavy docs, beautiful defaults | Hosted/paid, less customizable |
103
- | **ReadMe** | Multi-version, multi-project via dashboard | API documentation focus | Hosted/paid, opinionated structure |
104
- | **GitBook** | Spaces (one per product) grouped into Collections | Non-technical teams, wiki-style | Limited customization, hosted |
105
- | **Custom (Next.js/Astro)** | Full control over everything | Large orgs with specific needs | Build everything yourself |
106
-
107
- **Recommendation for small orgs (1-5 people)**: Starlight or Mintlify. Starlight is free, fast, and handles multi-section well with Astro's content collections. Mintlify provides beautiful defaults with zero config but costs money.
108
-
109
- **Recommendation for medium orgs**: Docusaurus multi-instance if you need independent versioning per product. VitePress if you want simplicity and speed.
110
-
111
- ### 5. Docusaurus Multi-Instance Deep Dive
112
-
113
- Docusaurus is the most mature option for multi-product docs. Key features:
114
-
115
- ```javascript
116
- // docusaurus.config.js
117
- module.exports = {
118
- plugins: [
119
- [
120
- '@docusaurus/plugin-content-docs',
121
- {
122
- id: 'agentsys',
123
- path: 'docs/agentsys',
124
- routeBasePath: 'docs/agentsys',
125
- sidebarPath: './sidebars/agentsys.js',
126
- },
127
- ],
128
- [
129
- '@docusaurus/plugin-content-docs',
130
- {
131
- id: 'agnix',
132
- path: 'docs/agnix',
133
- routeBasePath: 'docs/agnix',
134
- sidebarPath: './sidebars/agnix.js',
135
- },
136
- ],
137
- ],
138
- themeConfig: {
139
- navbar: {
140
- items: [
141
- { type: 'dropdown', label: 'Products', items: [
142
- { to: '/docs/agentsys', label: 'AgentSys' },
143
- { to: '/docs/agnix', label: 'Agnix' },
144
- ]},
145
- ],
146
- },
147
- },
148
- };
149
- ```
150
-
151
- Each instance gets:
152
- - Independent versioning (agnix v1.0 vs agentsys v3.7)
153
- - Separate sidebar
154
- - Separate search scope
155
- - Shared theme and components
156
-
157
- ### 6. Starlight (Astro) Multi-Product Setup
158
-
159
- ```javascript
160
- // astro.config.mjs
161
- import starlight from '@astrojs/starlight';
162
-
163
- export default {
164
- integrations: [
165
- starlight({
166
- title: 'agent-sh',
167
- sidebar: [
168
- {
169
- label: 'AgentSys',
170
- items: [
171
- { label: 'Getting Started', link: '/agentsys/getting-started' },
172
- { label: 'Plugin Catalog', link: '/agentsys/plugins' },
173
- { label: 'CLI Reference', link: '/agentsys/cli' },
174
- ],
175
- },
176
- {
177
- label: 'Agnix',
178
- items: [
179
- { label: 'Overview', link: '/agnix/overview' },
180
- { label: 'CLI', link: '/agnix/cli' },
181
- { label: 'LSP', link: '/agnix/lsp' },
182
- { label: 'IDE Extensions', link: '/agnix/ide' },
183
- ],
184
- },
185
- {
186
- label: 'Plugins',
187
- autogenerate: { directory: 'plugins' },
188
- },
189
- ],
190
- }),
191
- ],
192
- };
193
- ```
194
-
195
- ### 7. GitHub Pages vs Custom Domain vs Docs-as-Code
196
-
197
- **GitHub Pages** (org.github.io):
198
- - Free, auto-deploys from repo
199
- - Org site: `agent-sh.github.io` from the `agent-sh.github.io` repo
200
- - Project sites: `agent-sh.github.io/agentsys` from the agentsys repo
201
- - Custom domain: point `agent-sh.dev` to GitHub Pages
202
- - Limitation: one site per repo, no server-side rendering
203
- - Works great with static site generators (Starlight, Docusaurus, VitePress)
204
-
205
- **Custom domain with GitHub Pages**: Best of both worlds.
206
- ```
207
- agent-sh.dev -> agent-sh.github.io (org site, portal)
208
- agent-sh.dev/docs -> served from same org site repo
209
- agnix.dev -> separate repo with CNAME
210
- ```
211
-
212
- **Docs-as-code pattern**:
213
- - Docs live in the same repo as code (or a dedicated docs repo)
214
- - PRs for docs changes, same review process as code
215
- - CI builds and deploys on merge
216
- - Every product repo has a `/docs` folder, build system aggregates
217
-
218
- **Hosting alternatives**:
219
- - **Vercel/Netlify**: Free tier, preview deployments for doc PRs, faster builds than GitHub Pages
220
- - **Cloudflare Pages**: Free, fast, unlimited bandwidth
221
- - **GitHub Pages**: Free, simple, good enough for most
222
-
223
- ### 8. Plugin/Extension Catalogs and Marketplace Pages
224
-
225
- **Exemplar marketplace architectures:**
226
-
227
- **Terraform Registry** (registry.terraform.io):
228
- - Categories: Providers, Modules, Policies
229
- - Each entry: name, description, version, download count, verified badge
230
- - Detail page: README, inputs/outputs, dependencies, usage example
231
- - Search with filters
232
- - Backed by a GitHub-based publishing flow
233
-
234
- **VS Code Marketplace** (marketplace.visualstudio.com):
235
- - Categories, trending, featured
236
- - Install count, ratings, last updated
237
- - Detail page: README (from repo), changelog, install button
238
- - Deep linking: `ext install publisher.extension`
239
-
240
- **Homebrew Formulae** (formulae.brew.sh):
241
- - Simple catalog: name, description, install command
242
- - Analytics: install counts over 30/90/365 days
243
- - Static site generated from formula JSON data
244
- - No ratings/reviews, just facts
245
-
246
- **For agent-sh plugin catalog**, recommended approach:
247
-
248
- ```
249
- /plugins/ # Catalog page
250
- /plugins/next-task/ # Plugin detail page
251
- /plugins/ship/
252
- /plugins/enhance/
253
- ...
254
- ```
255
-
256
- Each plugin page should show:
257
- - Name, one-line description
258
- - Install command: `npx agentsys install next-task`
259
- - Compatibility: which AI tools it works with
260
- - What it includes: agents, skills, commands
261
- - README content (pulled from plugin repo)
262
- - Version, last updated, repo link
263
-
264
- **Implementation**: A `registry.json` file (which agentsys already has) feeds a static catalog page. Build step pulls README from each plugin repo and generates pages.
265
-
266
- ### 9. Small Org (1-5 People) Strategy
267
-
268
- Large orgs like HashiCorp have dedicated docs teams. Small orgs need to be ruthlessly practical:
269
-
270
- **Do:**
271
- - Single repo for the docs site (even if products are in separate repos)
272
- - Use a batteries-included framework (Starlight or Mintlify)
273
- - Automate: CI deploys on merge, broken link checking, spell checking
274
- - README-first: great READMEs in each repo, docs site supplements
275
- - Use `/llms.txt` for AI discoverability (Bun does this at bun.com/docs/llms.txt)
276
-
277
- **Don't:**
278
- - Maintain separate docs sites per product until you have > 5 people
279
- - Build custom docs infrastructure
280
- - Version docs until you actually have breaking changes
281
- - Create elaborate information architecture before you have content
282
-
283
- **Pragmatic structure for agent-sh:**
284
-
285
- Phase 1 (now): Single Starlight/Docusaurus site at agent-sh.dev
286
- - Landing page with product cards
287
- - /docs/agentsys/ - marketplace docs
288
- - /docs/agnix/ - linter docs
289
- - /plugins/ - catalog page
290
- - Each product repo keeps its own README as the "quick start"
291
-
292
- Phase 2 (when agnix has significant independent traction): Split agnix to agnix.dev
293
- - Its own site, own brand colors, own domain
294
- - Cross-links back to agent-sh.dev
295
- - agent-sh.dev links to agnix.dev
296
-
297
- Phase 3 (when you have a docs team): Full hub-and-spoke
298
- - Portal at agent-sh.dev
299
- - Each major product on its own site
300
-
301
- ### 10. SEO and Discoverability for Multi-Product Orgs
302
-
303
- **Domain strategy matters enormously for SEO:**
304
-
305
- | Strategy | SEO Impact | Example |
306
- |----------|-----------|---------|
307
- | Subpaths (`org.dev/product/`) | Best - all authority on one domain | supabase.com/docs/auth |
308
- | Subdomains (`product.org.dev`) | Medium - treated as separate sites by Google | docs.stripe.com |
309
- | Separate domains (`product.dev`) | Worst for org SEO, but builds product brand | nextjs.org vs vercel.com |
310
-
311
- **Key SEO practices:**
312
- - Each product page needs unique title, description, and H1
313
- - Canonical URLs to avoid duplicate content across product sections
314
- - Structured data (JSON-LD) for software application, FAQ
315
- - Sitemap per product section, combined sitemap index
316
- - Internal linking between products (Google follows these)
317
- - `llms.txt` at root for AI crawler discoverability (emerging standard)
318
-
319
- **For small orgs**: Keep everything on one domain. The SEO benefit of concentrated authority far outweighs the branding benefit of separate domains until you have significant traffic.
320
-
321
- ### 11. Agent Skills Catalog / AI Tool Plugin Marketplaces
322
-
323
- This is an emerging space. Key patterns from existing AI tool ecosystems:
324
-
325
- **MCP Server Directory** (various community directories):
326
- - Name, description, transport type
327
- - Capabilities (tools, resources, prompts)
328
- - Install/config snippet
329
- - Compatible clients
330
-
331
- **OpenAI GPT Store / ChatGPT Plugins** (historical):
332
- - Category-based browsing
333
- - Ratings and usage counts
334
- - "Try it" button
335
- - Manifest-based registration
336
-
337
- **Claude Code skills** (CLAUDE.md-based):
338
- - Convention-based discovery (slash commands)
339
- - No central registry - skills live in repos
340
- - Discoverability via documentation and CLAUDE.md
341
-
342
- **For agent-sh plugin marketplace:**
343
-
344
- ```json
345
- // registry.json entry per plugin
346
- {
347
- "name": "next-task",
348
- "description": "Master workflow: task discovery to PR merge",
349
- "version": "3.7.0",
350
- "commands": ["/next-task"],
351
- "agents": ["task-discoverer", "exploration-agent", "planning-agent"],
352
- "skills": ["discover-tasks", "validate-delivery"],
353
- "compatibility": ["claude-code", "opencode", "codex"],
354
- "install": "npx agentsys install next-task",
355
- "repo": "https://github.com/agent-sh/next-task",
356
- "tags": ["workflow", "task-management", "pr-automation"]
357
- }
358
- ```
359
-
360
- Catalog page features:
361
- - Filter by: command type, compatible tool, category
362
- - Sort by: popularity (install count), recently updated
363
- - Search across names, descriptions, tags
364
- - Quick install command copy button
365
- - Compatibility badges (works with Claude Code, OpenCode, Codex)
366
-
367
- ### 12. Real-World Architecture Analysis
368
-
369
- **Bun (oven-sh)** - Single product, multiple doc sections:
370
- - bun.sh/docs is one site
371
- - Landing page has four cards: Runtime, Package Manager, Test Runner, Bundler
372
- - Each section has its own sidebar tree
373
- - Unified search across all sections
374
- - Built with custom framework (not Docusaurus/Starlight)
375
- - Provides `llms.txt` for AI discoverability
376
-
377
- **Vercel** - Hub-and-spoke:
378
- - vercel.com/docs covers the platform
379
- - Next.js at nextjs.org (completely separate site, separate design system)
380
- - Turbo at turbo.build (separate site)
381
- - Cross-linking via "Related" sections
382
- - Vercel docs reference Next.js docs but don't duplicate them
383
-
384
- **HashiCorp** - Unified portal:
385
- - developer.hashicorp.com is the single entry point
386
- - Product switcher in left sidebar
387
- - Each product has: overview, tutorials, docs, API, CLI reference
388
- - Shared tutorial format across products
389
- - Unified search with product filtering
390
- - Originally separate sites (terraform.io/docs, vaultproject.io/docs), migrated to unified portal
391
-
392
- **Supabase** - Unified with product sections:
393
- - supabase.com/docs is one site
394
- - Left sidebar groups: Database, Auth, Edge Functions, Realtime, Storage, AI & Vectors
395
- - Shared design system, consistent page structure
396
- - API reference auto-generated from OpenAPI specs
397
- - Client library docs for multiple languages
398
-
399
- ## Common Pitfalls
400
-
401
- | Pitfall | Why It Happens | How to Avoid |
402
- |---------|---------------|--------------|
403
- | Premature site splitting | "Each product deserves its own site" before having enough content | Start unified, split when content and users justify it |
404
- | Inconsistent design across product docs | Different people build different product docs | Establish shared component library / design system first |
405
- | Docs rot in plugin repos | No one updates docs after initial write | CI that checks docs freshness, link checking |
406
- | Over-engineering the catalog | Building a full marketplace when you have 13 plugins | Static JSON + generated pages. Dynamic features later |
407
- | No cross-product navigation | Users on product A can't discover product B | Persistent header with product links on every page |
408
- | Separate search per product | Each docs section has its own search | Unified search index across all products |
409
- | Duplicating content across products | Same concept explained in 3 product docs | Write once, link from other products |
410
- | Ignoring `llms.txt` and AI discoverability | Only thinking about human readers | Add llms.txt, structured metadata for AI crawlers |
411
-
412
- ## Best Practices
413
-
414
- 1. **Start with one site, split later** - Unified is always easier to maintain for small teams. Split only when a product has genuinely different users. (Source: HashiCorp migration from separate to unified)
415
-
416
- 2. **Every product needs a one-liner and a hero install command** - Users decide in 5 seconds if they care. (Source: Bun, Supabase landing pages)
417
-
418
- 3. **Use a product switcher, not just nav links** - A persistent, visible way to jump between products. (Source: HashiCorp developer portal)
419
-
420
- 4. **README is the gateway, docs site is the depth** - Keep excellent READMEs in repos, docs site adds tutorials/guides/reference. (Source: GitHub community patterns)
421
-
422
- 5. **Automate catalog generation from registry data** - Don't manually maintain a catalog page. Generate it from `registry.json` or equivalent. (Source: Terraform Registry, Homebrew Formulae)
423
-
424
- 6. **Use subpaths not subdomains for SEO** - `org.dev/product/` beats `product.org.dev` for domain authority. (Source: Google SEO documentation)
425
-
426
- 7. **Provide `llms.txt`** - Emerging standard for AI discoverability. Bun already does this. (Source: bun.com/docs/llms.txt, llmstxt.org)
427
-
428
- 8. **Cross-link aggressively** - Every product page should link to related products/plugins. (Source: Stripe, Supabase docs patterns)
429
-
430
- 9. **Consistent page structure across products** - Every product doc should have: Overview, Quickstart, Guides, API Reference, Changelog. (Source: Diataxis framework)
431
-
432
- 10. **Deploy previews for doc PRs** - Use Vercel/Netlify/Cloudflare Pages preview deployments so reviewers can see rendered docs. (Source: Vercel, Netlify deployment features)
433
-
434
- ## Recommended Architecture for agent-sh
435
-
436
- ```
437
- agent-sh.dev/ # Built with Starlight (Astro)
438
- index # Org landing: "AI Agent Workflows"
439
- /docs/ # Getting started with the ecosystem
440
- /docs/agentsys/ # Marketplace & installer
441
- /docs/agentsys/getting-started/
442
- /docs/agentsys/cli-reference/
443
- /docs/agentsys/configuration/
444
- /docs/agnix/ # Linter (Phase 1: section here)
445
- /docs/agnix/cli/
446
- /docs/agnix/lsp/
447
- /docs/agnix/ide-extensions/
448
- /docs/agnix/rules/
449
- /docs/web-ctl/ # Browser interaction
450
- /plugins/ # Plugin catalog (generated from registry.json)
451
- /plugins/next-task/
452
- /plugins/ship/
453
- /plugins/enhance/
454
- /plugins/deslop/
455
- ...13 plugin pages
456
- /docs/agent-core/ # Infrastructure
457
- /docs/contributing/ # How to build plugins
458
- /llms.txt # AI discoverability index
459
- /docs/llms.txt # Per-section AI index
460
-
461
- agnix.dev/ # Phase 2: when agnix has independent users
462
- -> redirect or mirror of agent-sh.dev/docs/agnix/ initially
463
- -> full independent site later
464
- ```
465
-
466
- **Tech stack recommendation:**
467
- - **Framework**: Starlight (Astro) - fast, free, good multi-section support, growing ecosystem
468
- - **Hosting**: Cloudflare Pages (free, fast) or Vercel (preview deployments)
469
- - **Domain**: agent-sh.dev as primary, agnix.dev reserved for future
470
- - **CI**: GitHub Actions to build on push, deploy previews on PR
471
- - **Catalog**: Static generation from registry.json during build
472
- - **Search**: Pagefind (built into Starlight) for client-side search across all products
473
-
474
- ## Code Examples
475
-
476
- ### Starlight Project Structure
477
-
478
- ```
479
- docs-site/
480
- astro.config.mjs
481
- src/
482
- content/
483
- docs/
484
- index.mdx # Landing page
485
- agentsys/
486
- getting-started.mdx
487
- cli-reference.mdx
488
- plugins.mdx # Catalog page
489
- agnix/
490
- overview.mdx
491
- cli.mdx
492
- lsp.mdx
493
- rules/
494
- rule-reference.mdx
495
- plugins/
496
- next-task.mdx # Generated from registry
497
- ship.mdx
498
- enhance.mdx
499
- components/
500
- PluginCard.astro # Reusable plugin card
501
- ProductSwitcher.astro # Product navigation
502
- InstallCommand.astro # Copy-able install snippet
503
- scripts/
504
- generate-plugin-pages.js # Pulls from registry.json + READMEs
505
- public/
506
- llms.txt
507
- ```
508
-
509
- ### Plugin Catalog Page Generation
510
-
511
- ```javascript
512
- // scripts/generate-plugin-pages.js
513
- import { readFileSync, writeFileSync, mkdirSync } from 'fs';
514
-
515
- const registry = JSON.parse(readFileSync('../registry.json', 'utf-8'));
516
-
517
- for (const plugin of registry.plugins) {
518
- const page = `---
519
- title: "${plugin.name}"
520
- description: "${plugin.description}"
521
- ---
522
-
523
- import { Badge, Card } from '@astrojs/starlight/components';
524
- import InstallCommand from '../../components/InstallCommand.astro';
525
-
526
- # ${plugin.name}
527
-
528
- ${plugin.description}
529
-
530
- <InstallCommand command="npx agentsys install ${plugin.name}" />
531
-
532
- ## Compatibility
533
-
534
- ${plugin.compatibility.map(c => `<Badge text="${c}" />`).join(' ')}
535
-
536
- ## Included
537
-
538
- | Type | Name | Description |
539
- |------|------|-------------|
540
- ${plugin.commands.map(c => `| Command | \`${c}\` | |`).join('\n')}
541
- ${plugin.agents.map(a => `| Agent | ${a} | |`).join('\n')}
542
- ${plugin.skills.map(s => `| Skill | ${s} | |`).join('\n')}
543
-
544
- ## Installation
545
-
546
- \`\`\`bash
547
- npx agentsys install ${plugin.name}
548
- \`\`\`
549
-
550
- [View on GitHub](${plugin.repo})
551
- `;
552
-
553
- mkdirSync('src/content/docs/plugins', { recursive: true });
554
- writeFileSync(`src/content/docs/plugins/${plugin.name}.mdx`, page);
555
- }
556
- ```
557
-
558
- ### llms.txt for AI Discoverability
559
-
560
- ```
561
- # agent-sh
562
-
563
- > AI agent workflow tools for software development
564
-
565
- ## Products
566
-
567
- - agentsys: Marketplace and installer for AI agent plugins
568
- - agnix: Linter for agent configurations (SKILL.md, CLAUDE.md, hooks, MCP)
569
- - web-ctl: Browser interaction skill for AI agents
570
-
571
- ## Documentation
572
-
573
- - [AgentSys Docs](https://agent-sh.dev/docs/agentsys/)
574
- - [Agnix Docs](https://agent-sh.dev/docs/agnix/)
575
- - [Plugin Catalog](https://agent-sh.dev/plugins/)
576
-
577
- ## Plugins
578
-
579
- - next-task: Master workflow from task discovery to PR merge
580
- - ship: PR creation, CI monitoring, and merge
581
- - enhance: Run all enhancement analyzers
582
- - deslop: Clean AI slop patterns
583
- - audit-project: Multi-agent code review
584
- - drift-detect: Compare plan vs implementation
585
- - perf: Performance investigation
586
- - repo-map: Generate AST-based repo map
587
- - learn: Research topics, create learning guides
588
- - agnix: Lint agent configs
589
- - sync-docs: Update documentation to match code
590
- - web-ctl: Browser interaction for agents
591
- - next-task: Task workflow automation
592
-
593
- ## Installation
594
-
595
- npx agentsys install <plugin-name>
596
- ```
597
-
598
- ## Further Reading
599
-
600
- | Resource | Type | Why Recommended |
601
- |----------|------|-----------------|
602
- | [HashiCorp Developer Portal](https://developer.hashicorp.com) | Live example | Best-in-class unified multi-product docs |
603
- | [Supabase Docs](https://supabase.com/docs) | Live example | Clean multi-section docs for related products |
604
- | [Bun Docs](https://bun.sh/docs) | Live example | Single product, multi-section, includes llms.txt |
605
- | [Vercel Docs](https://vercel.com/docs) | Live example | Hub-and-spoke with independent product sites |
606
- | [Next.js Docs](https://nextjs.org/docs) | Live example | Independent product site within Vercel ecosystem |
607
- | [Docusaurus Multi-Instance](https://docusaurus.io/docs/docs-multi-instance) | Docs | Official guide for multi-product Docusaurus |
608
- | [Starlight Docs](https://starlight.astro.build) | Docs | Astro-based docs framework with multi-section support |
609
- | [Mintlify](https://mintlify.com) | Platform | Beautiful hosted docs with tabs/groups for multi-product |
610
- | [VitePress Multi-Sidebar](https://vitepress.dev/reference/default-theme-sidebar#multiple-sidebars) | Docs | Route-based sidebar configuration |
611
- | [Diataxis Framework](https://diataxis.fr) | Framework | Four-type documentation structure (tutorials, how-to, reference, explanation) |
612
- | [Terraform Registry](https://registry.terraform.io) | Live example | Plugin/module marketplace architecture |
613
- | [VS Code Marketplace](https://marketplace.visualstudio.com) | Live example | Extension catalog with search, ratings, categories |
614
- | [Homebrew Formulae](https://formulae.brew.sh) | Live example | Simple package catalog with analytics |
615
- | [llmstxt.org](https://llmstxt.org) | Standard | Emerging standard for AI discoverability |
616
- | [GitHub Pages Docs](https://docs.github.com/en/pages) | Docs | Org sites, project sites, custom domains |
617
- | [Pagefind](https://pagefind.app) | Tool | Client-side search, built into Starlight |
618
- | [Cloudflare Pages](https://pages.cloudflare.com) | Hosting | Free, fast hosting with preview deployments |
619
-
620
- ---
621
-
622
- *This guide was synthesized from 42 sources. See `resources/multi-product-org-docs-sources.json` for full source list.*