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>
135 lines
6.7 KiB
YAML
135 lines
6.7 KiB
YAML
# .agent-context-manifest.yml
|
|
#
|
|
# Generated by agent-pipeline bootstrap-agent-context skill (manual run; 2026-06-05).
|
|
# Tracks which artifacts the bootstrap installed in this repo, where they
|
|
# came from, and what pipeline version they correspond to.
|
|
#
|
|
# Read by the `sync-agent-context` skill to detect drift and propose updates.
|
|
# Don't edit by hand — use the bootstrap or sync skill in Cursor.
|
|
#
|
|
# Schema: https://github.com/varutasu/agent-pipeline/blob/main/docs/manifest-schema.md
|
|
#
|
|
# Notes for `tasks` specifically:
|
|
# - AGENTS.md is hand-curated (161 lines, pre-dates pipeline install) — NOT tracked
|
|
# - 4 stack rules (database.mdc, markdown-backlog.mdc, repo-overview.mdc, web-app.mdc)
|
|
# pre-date the pipeline and are hand-curated — NOT tracked
|
|
# - .cursor/mcp.json is per-repo MCP config — NOT tracked
|
|
# - .github/workflows/ci.yml was kept (better than template — pnpm + monorepo +
|
|
# concurrency + branches:[main]). NOT tracked (so sync won't suggest replacing it
|
|
# with the upstream template, which is npm-based and worse for this repo).
|
|
# - 3 artifacts are adapted (locally customized at install time) — flagged below.
|
|
# - L3 variant gap: no `nextjs-coolify/` template exists in the pipeline yet.
|
|
# pr-health-rollup.yml was adapted from `nextjs-prisma-coolify/`; CODEOWNERS from
|
|
# `nextjs/`. Filed as an open question in agent-pipeline/docs/CONSUMERS.md.
|
|
|
|
schema_version: 1
|
|
pipeline_version: "0.5.0"
|
|
pipeline_source: "https://github.com/varutasu/agent-pipeline"
|
|
installed_at: "2026-06-05T21:51:00Z"
|
|
last_synced_at: "2026-06-05T21:51:00Z"
|
|
|
|
layers:
|
|
- L1
|
|
- L2
|
|
- L3
|
|
|
|
artifacts:
|
|
# L1 — only the always-apply no-go-zones rule is pipeline-managed.
|
|
# AGENTS.md and the 4 stack rules in .cursor/rules/ are hand-curated.
|
|
- path: ".cursor/agents/echodo.config.json"
|
|
source: "skills/bootstrap-agent-context/templates/L3-pipeline/_common/echodo-config.json.template"
|
|
version: "0.5.0"
|
|
installed_hash: "sha256:68207b3fc05d266a55fb2056610d2db94d5a2d083d360f6811786476451ae01c"
|
|
customized: true # filled in with workspace_slug=convoys-tasks + tasks-specific transport reference
|
|
|
|
- path: ".cursor/rules/no-go-zones.mdc"
|
|
source: "skills/bootstrap-agent-context/templates/L1-context/no-go-zones.mdc"
|
|
version: "0.5.0"
|
|
installed_hash: "sha256:e042bfbb6a26806118e684b684fb6223b4c2fc19309ae9daafaa4fffe1680db3"
|
|
customized: true # adapted at install time for Echodo's monorepo + Drizzle + Coolify
|
|
|
|
# L2 — 9 roles, copied verbatim.
|
|
- path: ".cursor/agents/role-a11y-auditor.md"
|
|
source: "skills/bootstrap-agent-context/templates/L2-roles/role-a11y-auditor.md"
|
|
version: "0.5.0"
|
|
installed_hash: "sha256:a59938deceb0246ebd7e477f1f9a442102f9fcbb81b0364f0ddc5f86e95a7930"
|
|
|
|
- path: ".cursor/agents/role-architect.md"
|
|
source: "skills/bootstrap-agent-context/templates/L2-roles/role-architect.md"
|
|
version: "0.5.0"
|
|
installed_hash: "sha256:269bd62af1557c5d353a9f95a613960e3434be4ec6e0c0b5f6b099adf6872044"
|
|
|
|
- path: ".cursor/agents/role-conductor.md"
|
|
source: "skills/bootstrap-agent-context/templates/L2-roles/role-conductor.md"
|
|
version: "0.5.0"
|
|
installed_hash: "sha256:bc75a3e6646217a015f7bb60c3610afd9b57ae91c7d2fc7a7971f4709b19368a"
|
|
|
|
- path: ".cursor/agents/role-design-system-auditor.md"
|
|
source: "skills/bootstrap-agent-context/templates/L2-roles/role-design-system-auditor.md"
|
|
version: "0.5.0"
|
|
installed_hash: "sha256:d214cecb1e8482fc24f2815c8220c860191f08526614f89cf9a5797e4ee9110a"
|
|
|
|
- path: ".cursor/agents/role-doc-writer.md"
|
|
source: "skills/bootstrap-agent-context/templates/L2-roles/role-doc-writer.md"
|
|
version: "0.5.0"
|
|
installed_hash: "sha256:d4e8bf8cee93153506b7b742848462422dbe5cc7fd012c62f6ffd50460e344d4"
|
|
|
|
- path: ".cursor/agents/role-ia-architect.md"
|
|
source: "skills/bootstrap-agent-context/templates/L2-roles/role-ia-architect.md"
|
|
version: "0.5.0"
|
|
installed_hash: "sha256:69685a3a407c4ee25e2606d426c3107d6b917abee80f907e16ade4a16b439839"
|
|
|
|
- path: ".cursor/agents/role-implementer.md"
|
|
source: "skills/bootstrap-agent-context/templates/L2-roles/role-implementer.md"
|
|
version: "0.5.0"
|
|
installed_hash: "sha256:b4f4d8596068679b90ffc3a2b6d2e1b6548caf8c68a50f7ed640ba8f638c1c4c"
|
|
|
|
- path: ".cursor/agents/role-reviewer.md"
|
|
source: "skills/bootstrap-agent-context/templates/L2-roles/role-reviewer.md"
|
|
version: "0.5.0"
|
|
installed_hash: "sha256:1ff38349321402a0ac2be37878dc2c0bcab62e54caf74c422b919aa6d75f9b67"
|
|
|
|
- path: ".cursor/agents/role-ux-reviewer.md"
|
|
source: "skills/bootstrap-agent-context/templates/L2-roles/role-ux-reviewer.md"
|
|
version: "0.5.0"
|
|
installed_hash: "sha256:3a1d4b66981f469b15e23a1cd34ab41352759966179e126b3d56ddc1eca4a03e"
|
|
|
|
# L3 — pipeline scaffolding. NOT included: .github/workflows/ci.yml (kept the
|
|
# repo's own, which is better than the template), tests/smoke (Echodo uses
|
|
# vitest), lib/flags/index.ts (not used yet).
|
|
- path: ".convoys/README.md"
|
|
source: "skills/bootstrap-agent-context/templates/L3-pipeline/_common/convoys-readme.md.template"
|
|
version: "0.5.0"
|
|
installed_hash: "sha256:a48548cd3f5d0c40fc179106890661c3be5fcdc13eb705af7cfe9233e0b8b209"
|
|
|
|
- path: ".github/CODEOWNERS"
|
|
source: "skills/bootstrap-agent-context/templates/L3-pipeline/nextjs/CODEOWNERS.template"
|
|
version: "0.5.0"
|
|
installed_hash: "sha256:8d7d3388f61cbfe2cdc6ae759ea944a4b60cf896f0b6e11c6946dc84ee3f1bf9"
|
|
customized: true # adapted for Echodo's apps/packages monorepo layout
|
|
|
|
- path: ".github/PULL_REQUEST_TEMPLATE.md"
|
|
source: "skills/bootstrap-agent-context/templates/L3-pipeline/_common/PULL_REQUEST_TEMPLATE.md.template"
|
|
version: "0.5.0"
|
|
installed_hash: "sha256:89863e58b9ec194aef1c94d3596e892467833e8bc880a28994acca401b6d9635"
|
|
|
|
- path: ".github/workflows/agent-context-drift.yml"
|
|
source: "skills/bootstrap-agent-context/templates/L3-pipeline/_common/agent-context-drift.yml.template"
|
|
version: "0.5.0"
|
|
installed_hash: "sha256:5505c296c1b61d023ee2aca222103097e2b5ed2e0e38da3679cc4f9754457785"
|
|
|
|
- path: ".github/workflows/pr-health-rollup.yml"
|
|
source: "skills/bootstrap-agent-context/templates/L3-pipeline/nextjs-prisma-coolify/pr-health-rollup.yml.template"
|
|
version: "0.5.0"
|
|
installed_hash: "sha256:91472074a0906270f0cfaa7caa6fa2d4812de9281c0d35aa3f5ed368d6d0a72e"
|
|
customized: true # adapted for one-job CI (vs two-job template) and branches:[main]
|
|
|
|
- path: "scripts/log-convoy-event.sh"
|
|
source: "skills/bootstrap-agent-context/templates/L3-pipeline/_common/log-convoy-event.sh"
|
|
version: "0.5.0"
|
|
installed_hash: "sha256:cd0413691066a177b6b4e6164a9a0978c20a853ad60222ae833b5d53b255818d"
|
|
|
|
- path: "scripts/wt.sh"
|
|
source: "skills/bootstrap-agent-context/templates/L3-pipeline/_common/wt.sh"
|
|
version: "0.5.0"
|
|
installed_hash: "sha256:2a4f44a159f80a8ea6fe53ac507c01a2f91a4e2118d997a98b051808ac35e9a5"
|