Implements the Phase 2a Echodo bridge described in agent-pipeline's v0.4 plan (.cursor/plans/pipeline_v0.4_design_+_echodo_54a3bdb7). Echodo becomes the projection layer over the local .convoys/ tree; local files remain source of truth per the local-first contract. MCP lifecycle tools (apps/mcp-server/src/tools/): - create-convoy.ts: registers create_convoy. Creates a Drizzle `project` object with status="draft" + appends initial "## Status log" to the description. Takes workspace_slug + slug + title + classification + skip_flags + success_metric + idea_markdown + repo. - create-brief.ts: registers create_brief. Creates a `task` child of the convoy project. Takes convoyId + briefNumber + title + files_allowlist + depends_on + acceptance_criteria + brief_markdown. - transition-convoy-status.ts: registers transition_convoy_status. Enforces the 9-status state machine from plan §7.3 with valid transitions + actor-permission gates. Appends an audit entry to the description's ## Status log per transition. - log-convoy-event.ts: registers log_convoy_event. Inserts events into the new convoy_events table (one row per role hand-off, with classification, skip-flags, duration, stack-class, outcome, multitask-group metadata). - query-manifest-status.ts: registers query_manifest_status (stub — depends on the Phase 4 pipeline_drift_reports table; documented). - reconcile-from-files.ts: registers reconcile_from_files implementing the local-first recovery path. Reads .convoys/.pending-mcp-sync.jsonl from the given repoPath, replays queued log_convoy_event + transition_convoy_status calls, updates the outbox file on success/failure. Resolves the SPOF risk: failed MCP calls during offline windows reconcile when the bridge returns. Database (packages/database/): - src/schema/convoy_events.ts: new Drizzle schema. Columns: id, workspaceId, convoyId, convoySlug, role, brief, classification, skipFlags, durationS, stackClass, repo, outcome, multitaskGroup, metadata, ts. 4 indexes for per-workspace + per-convoy + role-filtered reads. - src/schema/index.ts: re-exports the new table. - migrations/0010_wandering_the_professor.sql + meta snapshot: generated via drizzle-kit generate. Pure-additive (CREATE TABLE + indexes + FKs). - package.json: db:migrate / db:push / db:studio now use node --env-file to load ../../.env (consistent with the existing mcp-server tsx pattern). db:generate stays as-is (offline operation, no env needed). L1 + L3 agent-pipeline scaffolding installed per agent-pipeline/skills/bootstrap-agent-context v0.5.0: - .agent-context-manifest.yml: tracks 17 artifacts at pipeline version 0.5.0 with sha256 hashes. 4 artifacts flagged customized:true (no-go-zones, CODEOWNERS, pr-health-rollup.yml, echodo.config.json) — adapted from templates for Echodo's monorepo + Drizzle + Coolify + workspace_slug. - .convoys/README.md: explains convoy file convention. - .cursor/agents/echodo.config.json: workspace_slug=convoys-tasks (the workspace created in Echodo UI). Fallback policy: local-only. - .cursor/rules/no-go-zones.mdc: adapted for Drizzle migrations, Coolify deploy infra, mcp-server boundaries. - .github/CODEOWNERS: @rstillw as sole maintainer; targeted rules for apps/, packages/, auth, deploy infra, DB schema, MCP server, agent context. - .github/PULL_REQUEST_TEMPLATE.md: pipeline PR template. - .github/workflows/agent-context-drift.yml: drift monitor against upstream agent-pipeline. - .github/workflows/pr-health-rollup.yml: adapted for tasks' pnpm monorepo + Coolify deploy (no per-PR preview by default). - scripts/log-convoy-event.sh: convoy event logger shim. - scripts/wt.sh: worktree helper stub (deprecated — points at Cursor 3.2 native worktrees). - .gitignore: excludes .convoys/.metrics.jsonl + .convoys/.pending-mcp-sync.jsonl (local agent analytics + MCP outbox). Co-authored-by: Cursor <cursoragent@cursor.com>
56 lines
2.6 KiB
Text
56 lines
2.6 KiB
Text
---
|
|
description: Files and directories agents must not edit, and should not use as context examples
|
|
alwaysApply: true
|
|
---
|
|
|
|
# No-go zones
|
|
|
|
Do not edit, refactor, or quote as context examples. If you think you need to change one of these, stop and ask.
|
|
|
|
## Generated / vendored
|
|
|
|
- `node_modules/` — generated dependency tree
|
|
- `.next/`, `apps/*/.next/` — Next.js build output
|
|
- `.turbo/`, `apps/*/.turbo/`, `packages/*/.turbo/` — Turborepo cache
|
|
- `dist/`, `build/` — build outputs in any package
|
|
- `*.tsbuildinfo` — TS incremental cache
|
|
- `next-env.d.ts` — Next.js generated types
|
|
- `pnpm-lock.yaml` — pnpm lockfile; never hand-edit. Update via `pnpm install` or `pnpm add`.
|
|
|
|
## Append-only / historical
|
|
|
|
- `packages/database/migrations/` — Drizzle migrations are append-only. Create **new** ones via `pnpm db:generate`, never edit existing SQL.
|
|
- `plans/**/Plan-*-archive/` — frozen archived plans (if any) — leave alone.
|
|
|
|
## Secrets / credentials
|
|
|
|
- `.env`, `.env.local`, `.env.development.local`, `.env.test.local`, `.env.production.local`
|
|
- `.env.*` (anything matching) — including `.env.coolify` if used
|
|
- `credentials/`, `*-service-account-key.json`
|
|
- `certs/`, `*.pem`, `*.key`
|
|
- `docker/.env*` — Coolify deploy env files; never commit
|
|
|
|
`.env.example` is safe to edit.
|
|
|
|
## Deploy infrastructure (high-risk)
|
|
|
|
- `docker/Dockerfile` — touch only when you mean to ship; CI doesn't run this
|
|
- `docker/docker-compose.coolify.yml` — Coolify production compose; coordinate with the deploy
|
|
- `docker/next.config.docker.ts` — docker-specific Next config override
|
|
|
|
If you need to change any of these, surface it as a separate brief.
|
|
|
|
## Local-only / per-developer
|
|
|
|
- `.code-review-graph/` — local MCP graph index (per-developer)
|
|
- `.worktrees/`, `*-worktrees/` — local worktree orchestration
|
|
- `.convoys/.metrics.jsonl` — local self-analytics; gitignored
|
|
- `.convoys/.pending-mcp-sync.jsonl` — local Echodo MCP outbox (v0.4+); gitignored
|
|
- `.DS_Store` — macOS Finder metadata
|
|
|
|
## Editing rules of thumb
|
|
|
|
- **New Drizzle migrations only.** Edit `packages/database/src/schema.ts` (or per-domain schema files), then `pnpm db:generate` to produce a new migration. Never hand-edit a previous migration's SQL.
|
|
- **Backlog markdown lives under `plans/`** and is synced with Echodo's DB via the importer in `packages/database`. See `config/CursorSync.md` before touching sync code.
|
|
- **MCP server is the agent's surface to Echodo.** Modify `apps/mcp-server/` carefully — agents (including this one) rely on its tool stability. Stdio transport, not HTTP.
|
|
- If you find yourself wanting to "fix" a generated artifact, regenerate it via the proper command instead.
|