vibe-forge 0.8.2 → 0.8.5
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.
- package/.claude/commands/clear-attention.md +63 -63
- package/.claude/commands/compact-context.md +52 -52
- package/.claude/commands/need-help.md +77 -77
- package/.claude/commands/update-status.md +64 -64
- package/.claude/commands/worker-loop.md +106 -106
- package/.claude/scripts/setup-worker-loop.sh +45 -45
- package/LICENSE +21 -21
- package/README.md +211 -211
- package/bin/cli.js +127 -33
- package/bin/dashboard/api/agents.js +333 -333
- package/bin/dashboard/api/dispatch.js +507 -507
- package/bin/dashboard/api/tasks.js +416 -416
- package/bin/dashboard/public/assets/index-Dm2PgE2m.js +2 -0
- package/bin/dashboard/public/index.html +13 -13
- package/bin/dashboard/server.js +574 -645
- package/config/agent-manifest.yaml +237 -237
- package/config/agents.json +207 -207
- package/config/task-types.yaml +111 -111
- package/context/agent-overrides/README.md +41 -41
- package/context/architecture.md +42 -42
- package/context/modern-conventions.md +129 -129
- package/docs/agents.md +473 -473
- package/docs/architecture.md +194 -194
- package/docs/commands.md +451 -451
- package/docs/security.md +195 -195
- package/package.json +2 -3
- package/src/lib/database.sh +1 -1
- package/bin/dashboard/public/assets/index-BpHfsx1r.js +0 -2
|
@@ -1,41 +1,41 @@
|
|
|
1
|
-
# Agent Overrides
|
|
2
|
-
|
|
3
|
-
Place per-agent override files here to customize agent behavior for this project.
|
|
4
|
-
|
|
5
|
-
## How It Works
|
|
6
|
-
|
|
7
|
-
When Planning Hub spawns a worker, it appends the contents of
|
|
8
|
-
`context/agent-overrides/<agent-name>.md` to the agent's system prompt.
|
|
9
|
-
This lets you add project-specific rules without modifying the global
|
|
10
|
-
personality files.
|
|
11
|
-
|
|
12
|
-
## File Naming
|
|
13
|
-
|
|
14
|
-
Use the canonical agent name (matching `config/agents.json`):
|
|
15
|
-
|
|
16
|
-
```
|
|
17
|
-
context/agent-overrides/
|
|
18
|
-
anvil.md # Frontend-specific project rules
|
|
19
|
-
furnace.md # Backend-specific project rules
|
|
20
|
-
crucible.md # Testing conventions for this project
|
|
21
|
-
...
|
|
22
|
-
```
|
|
23
|
-
|
|
24
|
-
## What to Put Here
|
|
25
|
-
|
|
26
|
-
- Tech stack constraints ("Use React Query, not SWR")
|
|
27
|
-
- Naming conventions specific to this project
|
|
28
|
-
- Files or directories the agent should never touch
|
|
29
|
-
- Patterns the agent should follow or avoid
|
|
30
|
-
- Project-specific testing requirements
|
|
31
|
-
|
|
32
|
-
## Example
|
|
33
|
-
|
|
34
|
-
```markdown
|
|
35
|
-
# Anvil Overrides
|
|
36
|
-
|
|
37
|
-
- Use Tailwind CSS utility classes, no custom CSS files
|
|
38
|
-
- All components must be in `src/components/` with PascalCase naming
|
|
39
|
-
- Use `shadcn/ui` for base components, don't reinvent
|
|
40
|
-
- Never import from `@/lib/legacy/` (deprecated)
|
|
41
|
-
```
|
|
1
|
+
# Agent Overrides
|
|
2
|
+
|
|
3
|
+
Place per-agent override files here to customize agent behavior for this project.
|
|
4
|
+
|
|
5
|
+
## How It Works
|
|
6
|
+
|
|
7
|
+
When Planning Hub spawns a worker, it appends the contents of
|
|
8
|
+
`context/agent-overrides/<agent-name>.md` to the agent's system prompt.
|
|
9
|
+
This lets you add project-specific rules without modifying the global
|
|
10
|
+
personality files.
|
|
11
|
+
|
|
12
|
+
## File Naming
|
|
13
|
+
|
|
14
|
+
Use the canonical agent name (matching `config/agents.json`):
|
|
15
|
+
|
|
16
|
+
```
|
|
17
|
+
context/agent-overrides/
|
|
18
|
+
anvil.md # Frontend-specific project rules
|
|
19
|
+
furnace.md # Backend-specific project rules
|
|
20
|
+
crucible.md # Testing conventions for this project
|
|
21
|
+
...
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
## What to Put Here
|
|
25
|
+
|
|
26
|
+
- Tech stack constraints ("Use React Query, not SWR")
|
|
27
|
+
- Naming conventions specific to this project
|
|
28
|
+
- Files or directories the agent should never touch
|
|
29
|
+
- Patterns the agent should follow or avoid
|
|
30
|
+
- Project-specific testing requirements
|
|
31
|
+
|
|
32
|
+
## Example
|
|
33
|
+
|
|
34
|
+
```markdown
|
|
35
|
+
# Anvil Overrides
|
|
36
|
+
|
|
37
|
+
- Use Tailwind CSS utility classes, no custom CSS files
|
|
38
|
+
- All components must be in `src/components/` with PascalCase naming
|
|
39
|
+
- Use `shadcn/ui` for base components, don't reinvent
|
|
40
|
+
- Never import from `@/lib/legacy/` (deprecated)
|
|
41
|
+
```
|
package/context/architecture.md
CHANGED
|
@@ -1,42 +1,42 @@
|
|
|
1
|
-
# Project Architecture
|
|
2
|
-
|
|
3
|
-
This file contains project-specific architectural decisions and guardrails.
|
|
4
|
-
Agents read this during planning and task execution to stay aligned.
|
|
5
|
-
|
|
6
|
-
For Vibe Forge's own architecture, see [docs/architecture.md](../docs/architecture.md).
|
|
7
|
-
|
|
8
|
-
---
|
|
9
|
-
|
|
10
|
-
## Key Decisions
|
|
11
|
-
|
|
12
|
-
<!-- Add project-specific architectural decisions here -->
|
|
13
|
-
<!-- Example:
|
|
14
|
-
- **Auth:** JWT with httpOnly cookies, refresh token rotation
|
|
15
|
-
- **Database:** PostgreSQL via Prisma ORM, no raw SQL outside migrations
|
|
16
|
-
- **API:** REST for CRUD, WebSocket for real-time updates
|
|
17
|
-
-->
|
|
18
|
-
|
|
19
|
-
## Patterns
|
|
20
|
-
|
|
21
|
-
<!-- Document patterns agents should follow -->
|
|
22
|
-
<!-- Example:
|
|
23
|
-
- Repository pattern for data access (no direct DB queries in handlers)
|
|
24
|
-
- Error boundaries at route level, not in services
|
|
25
|
-
- All new endpoints require OpenAPI spec before implementation
|
|
26
|
-
-->
|
|
27
|
-
|
|
28
|
-
## Guardrails
|
|
29
|
-
|
|
30
|
-
<!-- Things agents must NOT do -->
|
|
31
|
-
<!-- Example:
|
|
32
|
-
- Never modify schema files without running `prisma migrate dev`
|
|
33
|
-
- No new dependencies without architect approval
|
|
34
|
-
- No `any` types in TypeScript
|
|
35
|
-
-->
|
|
36
|
-
|
|
37
|
-
## ADR Index
|
|
38
|
-
|
|
39
|
-
<!-- Link to Architecture Decision Records as they're created -->
|
|
40
|
-
<!-- Example:
|
|
41
|
-
- [ADR-001](../docs/adr/ADR-001-daemon-module-extraction.md) - Daemon module extraction
|
|
42
|
-
-->
|
|
1
|
+
# Project Architecture
|
|
2
|
+
|
|
3
|
+
This file contains project-specific architectural decisions and guardrails.
|
|
4
|
+
Agents read this during planning and task execution to stay aligned.
|
|
5
|
+
|
|
6
|
+
For Vibe Forge's own architecture, see [docs/architecture.md](../docs/architecture.md).
|
|
7
|
+
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
## Key Decisions
|
|
11
|
+
|
|
12
|
+
<!-- Add project-specific architectural decisions here -->
|
|
13
|
+
<!-- Example:
|
|
14
|
+
- **Auth:** JWT with httpOnly cookies, refresh token rotation
|
|
15
|
+
- **Database:** PostgreSQL via Prisma ORM, no raw SQL outside migrations
|
|
16
|
+
- **API:** REST for CRUD, WebSocket for real-time updates
|
|
17
|
+
-->
|
|
18
|
+
|
|
19
|
+
## Patterns
|
|
20
|
+
|
|
21
|
+
<!-- Document patterns agents should follow -->
|
|
22
|
+
<!-- Example:
|
|
23
|
+
- Repository pattern for data access (no direct DB queries in handlers)
|
|
24
|
+
- Error boundaries at route level, not in services
|
|
25
|
+
- All new endpoints require OpenAPI spec before implementation
|
|
26
|
+
-->
|
|
27
|
+
|
|
28
|
+
## Guardrails
|
|
29
|
+
|
|
30
|
+
<!-- Things agents must NOT do -->
|
|
31
|
+
<!-- Example:
|
|
32
|
+
- Never modify schema files without running `prisma migrate dev`
|
|
33
|
+
- No new dependencies without architect approval
|
|
34
|
+
- No `any` types in TypeScript
|
|
35
|
+
-->
|
|
36
|
+
|
|
37
|
+
## ADR Index
|
|
38
|
+
|
|
39
|
+
<!-- Link to Architecture Decision Records as they're created -->
|
|
40
|
+
<!-- Example:
|
|
41
|
+
- [ADR-001](../docs/adr/ADR-001-daemon-module-extraction.md) - Daemon module extraction
|
|
42
|
+
-->
|
|
@@ -1,129 +1,129 @@
|
|
|
1
|
-
# Modern Development Conventions
|
|
2
|
-
|
|
3
|
-
Reference for up-to-date tooling and naming conventions. Knowledge cutoffs can cause outdated suggestions - prefer these modern approaches.
|
|
4
|
-
|
|
5
|
-
## Docker & Containers
|
|
6
|
-
|
|
7
|
-
### Compose (V2+, 2021)
|
|
8
|
-
|
|
9
|
-
- **File name:** `compose.yml` or `compose.yaml` (NOT `docker-compose.yml`)
|
|
10
|
-
- **Command:** `docker compose` (NOT `docker-compose`)
|
|
11
|
-
- Compose V2 is built into Docker CLI, no separate install needed
|
|
12
|
-
- `docker-compose` (hyphenated) is legacy V1
|
|
13
|
-
|
|
14
|
-
```yaml
|
|
15
|
-
# compose.yml (modern)
|
|
16
|
-
services:
|
|
17
|
-
app:
|
|
18
|
-
build: .
|
|
19
|
-
ports:
|
|
20
|
-
- "3000:3000"
|
|
21
|
-
```
|
|
22
|
-
|
|
23
|
-
### Docker Best Practices
|
|
24
|
-
|
|
25
|
-
- Use multi-stage builds for smaller images
|
|
26
|
-
- Prefer `COPY` over `ADD` unless extracting archives
|
|
27
|
-
- Use `.dockerignore` to exclude node_modules, .git, etc.
|
|
28
|
-
- Pin base image versions (e.g., `node:20-alpine`, not `node:latest`)
|
|
29
|
-
|
|
30
|
-
## Package Managers
|
|
31
|
-
|
|
32
|
-
### Node.js
|
|
33
|
-
|
|
34
|
-
- **npm:** v7+ supports workspaces, lockfile v2
|
|
35
|
-
- **pnpm:** Preferred for monorepos, faster, stricter
|
|
36
|
-
- **Bun:** Fast runtime + package manager, growing adoption
|
|
37
|
-
|
|
38
|
-
### Python
|
|
39
|
-
|
|
40
|
-
- **uv:** Modern, fast replacement for pip/pip-tools (2024+)
|
|
41
|
-
- **poetry:** Dependency management + packaging
|
|
42
|
-
- **pipx:** For CLI tools (don't pip install globally)
|
|
43
|
-
|
|
44
|
-
## TypeScript
|
|
45
|
-
|
|
46
|
-
- **Config:** `tsconfig.json` with `"moduleResolution": "bundler"` for modern bundlers
|
|
47
|
-
- **Strict mode:** Always enable `"strict": true`
|
|
48
|
-
- **Node types:** `@types/node` version should match Node.js version
|
|
49
|
-
|
|
50
|
-
## Testing
|
|
51
|
-
|
|
52
|
-
### JavaScript/TypeScript
|
|
53
|
-
|
|
54
|
-
- **Vitest:** Modern, fast, Vite-native (preferred for new projects)
|
|
55
|
-
- **Jest:** Still widely used, v30+ reduces deprecated deps
|
|
56
|
-
- **Playwright:** E2E testing, cross-browser
|
|
57
|
-
|
|
58
|
-
### Python
|
|
59
|
-
|
|
60
|
-
- **pytest:** Standard, use over unittest
|
|
61
|
-
- **pytest-cov:** Coverage reporting
|
|
62
|
-
|
|
63
|
-
## CI/CD
|
|
64
|
-
|
|
65
|
-
### GitHub Actions
|
|
66
|
-
|
|
67
|
-
- Use `actions/checkout@v4`, `actions/setup-node@v4` (latest major versions)
|
|
68
|
-
- Prefer `npm ci` over `npm install` in CI
|
|
69
|
-
- Use job matrices for cross-platform testing
|
|
70
|
-
|
|
71
|
-
## Linting & Formatting
|
|
72
|
-
|
|
73
|
-
### JavaScript/TypeScript
|
|
74
|
-
|
|
75
|
-
- **ESLint v9+:** Flat config (`eslint.config.js`, not `.eslintrc`)
|
|
76
|
-
- **Prettier:** Code formatting (or use ESLint with stylistic rules)
|
|
77
|
-
- **Biome:** Fast all-in-one linter + formatter (Rust-based)
|
|
78
|
-
|
|
79
|
-
### Python
|
|
80
|
-
|
|
81
|
-
- **Ruff:** Fast linter + formatter (replaces flake8, black, isort)
|
|
82
|
-
- **mypy:** Type checking
|
|
83
|
-
|
|
84
|
-
## API Design
|
|
85
|
-
|
|
86
|
-
### REST
|
|
87
|
-
|
|
88
|
-
- Use plural nouns for collections (`/users`, not `/user`)
|
|
89
|
-
- HTTP methods: GET (read), POST (create), PUT/PATCH (update), DELETE
|
|
90
|
-
- Status codes: 200 OK, 201 Created, 400 Bad Request, 404 Not Found, 500 Server Error
|
|
91
|
-
|
|
92
|
-
### Authentication
|
|
93
|
-
|
|
94
|
-
- **JWTs:** Short expiry + refresh tokens, store in httpOnly cookies (not localStorage)
|
|
95
|
-
- **OAuth 2.0 / OIDC:** For third-party auth
|
|
96
|
-
- **Passkeys/WebAuthn:** Modern passwordless option
|
|
97
|
-
|
|
98
|
-
## Database
|
|
99
|
-
|
|
100
|
-
### ORMs
|
|
101
|
-
|
|
102
|
-
- **Prisma:** Type-safe, great DX for Node.js/TypeScript
|
|
103
|
-
- **Drizzle:** Lightweight, SQL-like syntax
|
|
104
|
-
- **SQLAlchemy 2.0:** Python standard (note: 2.0 syntax differs from 1.x)
|
|
105
|
-
|
|
106
|
-
### Migrations
|
|
107
|
-
|
|
108
|
-
- Always use migrations, never manual schema changes in production
|
|
109
|
-
- Version control migration files
|
|
110
|
-
|
|
111
|
-
## Frontend
|
|
112
|
-
|
|
113
|
-
### React
|
|
114
|
-
|
|
115
|
-
- **React 18+:** Concurrent features, Suspense
|
|
116
|
-
- Prefer function components + hooks over class components
|
|
117
|
-
- Use React Server Components where appropriate (Next.js 13+)
|
|
118
|
-
|
|
119
|
-
### State Management
|
|
120
|
-
|
|
121
|
-
- Start with React Context + useReducer
|
|
122
|
-
- **Zustand:** Simple, minimal boilerplate
|
|
123
|
-
- **TanStack Query:** For server state (caching, refetching)
|
|
124
|
-
|
|
125
|
-
## Monorepos
|
|
126
|
-
|
|
127
|
-
- **Turborepo:** Fast builds, caching
|
|
128
|
-
- **Nx:** Full-featured, good for enterprise
|
|
129
|
-
- **pnpm workspaces:** Native package manager support
|
|
1
|
+
# Modern Development Conventions
|
|
2
|
+
|
|
3
|
+
Reference for up-to-date tooling and naming conventions. Knowledge cutoffs can cause outdated suggestions - prefer these modern approaches.
|
|
4
|
+
|
|
5
|
+
## Docker & Containers
|
|
6
|
+
|
|
7
|
+
### Compose (V2+, 2021)
|
|
8
|
+
|
|
9
|
+
- **File name:** `compose.yml` or `compose.yaml` (NOT `docker-compose.yml`)
|
|
10
|
+
- **Command:** `docker compose` (NOT `docker-compose`)
|
|
11
|
+
- Compose V2 is built into Docker CLI, no separate install needed
|
|
12
|
+
- `docker-compose` (hyphenated) is legacy V1
|
|
13
|
+
|
|
14
|
+
```yaml
|
|
15
|
+
# compose.yml (modern)
|
|
16
|
+
services:
|
|
17
|
+
app:
|
|
18
|
+
build: .
|
|
19
|
+
ports:
|
|
20
|
+
- "3000:3000"
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
### Docker Best Practices
|
|
24
|
+
|
|
25
|
+
- Use multi-stage builds for smaller images
|
|
26
|
+
- Prefer `COPY` over `ADD` unless extracting archives
|
|
27
|
+
- Use `.dockerignore` to exclude node_modules, .git, etc.
|
|
28
|
+
- Pin base image versions (e.g., `node:20-alpine`, not `node:latest`)
|
|
29
|
+
|
|
30
|
+
## Package Managers
|
|
31
|
+
|
|
32
|
+
### Node.js
|
|
33
|
+
|
|
34
|
+
- **npm:** v7+ supports workspaces, lockfile v2
|
|
35
|
+
- **pnpm:** Preferred for monorepos, faster, stricter
|
|
36
|
+
- **Bun:** Fast runtime + package manager, growing adoption
|
|
37
|
+
|
|
38
|
+
### Python
|
|
39
|
+
|
|
40
|
+
- **uv:** Modern, fast replacement for pip/pip-tools (2024+)
|
|
41
|
+
- **poetry:** Dependency management + packaging
|
|
42
|
+
- **pipx:** For CLI tools (don't pip install globally)
|
|
43
|
+
|
|
44
|
+
## TypeScript
|
|
45
|
+
|
|
46
|
+
- **Config:** `tsconfig.json` with `"moduleResolution": "bundler"` for modern bundlers
|
|
47
|
+
- **Strict mode:** Always enable `"strict": true`
|
|
48
|
+
- **Node types:** `@types/node` version should match Node.js version
|
|
49
|
+
|
|
50
|
+
## Testing
|
|
51
|
+
|
|
52
|
+
### JavaScript/TypeScript
|
|
53
|
+
|
|
54
|
+
- **Vitest:** Modern, fast, Vite-native (preferred for new projects)
|
|
55
|
+
- **Jest:** Still widely used, v30+ reduces deprecated deps
|
|
56
|
+
- **Playwright:** E2E testing, cross-browser
|
|
57
|
+
|
|
58
|
+
### Python
|
|
59
|
+
|
|
60
|
+
- **pytest:** Standard, use over unittest
|
|
61
|
+
- **pytest-cov:** Coverage reporting
|
|
62
|
+
|
|
63
|
+
## CI/CD
|
|
64
|
+
|
|
65
|
+
### GitHub Actions
|
|
66
|
+
|
|
67
|
+
- Use `actions/checkout@v4`, `actions/setup-node@v4` (latest major versions)
|
|
68
|
+
- Prefer `npm ci` over `npm install` in CI
|
|
69
|
+
- Use job matrices for cross-platform testing
|
|
70
|
+
|
|
71
|
+
## Linting & Formatting
|
|
72
|
+
|
|
73
|
+
### JavaScript/TypeScript
|
|
74
|
+
|
|
75
|
+
- **ESLint v9+:** Flat config (`eslint.config.js`, not `.eslintrc`)
|
|
76
|
+
- **Prettier:** Code formatting (or use ESLint with stylistic rules)
|
|
77
|
+
- **Biome:** Fast all-in-one linter + formatter (Rust-based)
|
|
78
|
+
|
|
79
|
+
### Python
|
|
80
|
+
|
|
81
|
+
- **Ruff:** Fast linter + formatter (replaces flake8, black, isort)
|
|
82
|
+
- **mypy:** Type checking
|
|
83
|
+
|
|
84
|
+
## API Design
|
|
85
|
+
|
|
86
|
+
### REST
|
|
87
|
+
|
|
88
|
+
- Use plural nouns for collections (`/users`, not `/user`)
|
|
89
|
+
- HTTP methods: GET (read), POST (create), PUT/PATCH (update), DELETE
|
|
90
|
+
- Status codes: 200 OK, 201 Created, 400 Bad Request, 404 Not Found, 500 Server Error
|
|
91
|
+
|
|
92
|
+
### Authentication
|
|
93
|
+
|
|
94
|
+
- **JWTs:** Short expiry + refresh tokens, store in httpOnly cookies (not localStorage)
|
|
95
|
+
- **OAuth 2.0 / OIDC:** For third-party auth
|
|
96
|
+
- **Passkeys/WebAuthn:** Modern passwordless option
|
|
97
|
+
|
|
98
|
+
## Database
|
|
99
|
+
|
|
100
|
+
### ORMs
|
|
101
|
+
|
|
102
|
+
- **Prisma:** Type-safe, great DX for Node.js/TypeScript
|
|
103
|
+
- **Drizzle:** Lightweight, SQL-like syntax
|
|
104
|
+
- **SQLAlchemy 2.0:** Python standard (note: 2.0 syntax differs from 1.x)
|
|
105
|
+
|
|
106
|
+
### Migrations
|
|
107
|
+
|
|
108
|
+
- Always use migrations, never manual schema changes in production
|
|
109
|
+
- Version control migration files
|
|
110
|
+
|
|
111
|
+
## Frontend
|
|
112
|
+
|
|
113
|
+
### React
|
|
114
|
+
|
|
115
|
+
- **React 18+:** Concurrent features, Suspense
|
|
116
|
+
- Prefer function components + hooks over class components
|
|
117
|
+
- Use React Server Components where appropriate (Next.js 13+)
|
|
118
|
+
|
|
119
|
+
### State Management
|
|
120
|
+
|
|
121
|
+
- Start with React Context + useReducer
|
|
122
|
+
- **Zustand:** Simple, minimal boilerplate
|
|
123
|
+
- **TanStack Query:** For server state (caching, refetching)
|
|
124
|
+
|
|
125
|
+
## Monorepos
|
|
126
|
+
|
|
127
|
+
- **Turborepo:** Fast builds, caching
|
|
128
|
+
- **Nx:** Full-featured, good for enterprise
|
|
129
|
+
- **pnpm workspaces:** Native package manager support
|