Merge pull request #377 from fsolla/fsolla/move-cursor-bootstrap-to-dot-cursor
chore: move Cursor hooks and cloud bootstrap to .cursor/
This commit is contained in:
commit
ab1d3a4ac0
12 changed files with 14 additions and 14 deletions
|
|
@ -1,4 +0,0 @@
|
|||
{
|
||||
"install": "pnpm install --frozen-lockfile && pnpm run prepare && bash ./.agents/cloud-setup.sh",
|
||||
"start": "bash ./.agents/ensure-postgres.sh"
|
||||
}
|
||||
|
|
@ -46,7 +46,7 @@ pnpm i # se node_modules ausente/stale
|
|||
|
||||
### Cloud (sem Docker)
|
||||
|
||||
Não use `pnpm db:start`. Postgres via `.agents/environment.json`. `gate:fast` / `gate:push` não precisam de DB. **Proibido** `git push --no-verify` no fechamento.
|
||||
Não use `pnpm db:start`. Postgres via `.cursor/environment.json`. `gate:fast` / `gate:push` não precisam de DB. **Proibido** `git push --no-verify` no fechamento.
|
||||
|
||||
## Passo 1 — Sessão (Issue já claimada)
|
||||
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@ Production is a live **Neon Postgres** with real citizens' PII. Local developmen
|
|||
|
||||
## Cursor Cloud (sem Docker)
|
||||
|
||||
VMs Cloud **não rodam** `docker compose` / `pnpm db:start`. Postgres nativo: `.agents/environment.json` (`cloud-setup.sh` + `ensure-postgres.sh`). Mesmos URLs `localhost:5432/teqo` e `teqo_test`. Agentes em `work-issue` / `agent-work-issue`: não tente Docker; `gate:fast`/`gate:push` não precisam de banco.
|
||||
VMs Cloud **não rodam** `docker compose` / `pnpm db:start`. Postgres nativo: `.cursor/environment.json` (`.cursor/cloud-setup.sh` + `.cursor/ensure-postgres.sh`). Mesmos URLs `localhost:5432/teqo` e `teqo_test`. Agentes em `work-issue` / `agent-work-issue`: não tente Docker; `gate:fast`/`gate:push` não precisam de banco.
|
||||
|
||||
## Local connection values
|
||||
|
||||
|
|
|
|||
4
.cursor/environment.json
Normal file
4
.cursor/environment.json
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
{
|
||||
"install": "pnpm install --frozen-lockfile && pnpm run prepare && bash ./.cursor/cloud-setup.sh",
|
||||
"start": "bash ./.cursor/ensure-postgres.sh"
|
||||
}
|
||||
|
|
@ -3,7 +3,7 @@
|
|||
"hooks": {
|
||||
"preToolUse": [
|
||||
{
|
||||
"command": "node \".agents/hooks/guard-env-files.mjs\"",
|
||||
"command": "node \".cursor/hooks/guard-env-files.mjs\"",
|
||||
"timeout": 5
|
||||
}
|
||||
]
|
||||
|
|
@ -91,7 +91,7 @@ Vercel Git builds: `scripts/vercel-ignore-build.sh` skipeia **todas** as branche
|
|||
|
||||
## Cursor Cloud
|
||||
|
||||
`.agents/environment.json` instala deps + Postgres nativo + `db:seed:minimal`. Sem secrets de prod. Preferir `pnpm push`; escape `git push --no-verify` só no cutover documentado acima.
|
||||
`.cursor/environment.json` instala deps + Postgres nativo + `db:seed:minimal`. Sem secrets de prod. Preferir `pnpm push`; escape `git push --no-verify` só no cutover documentado acima.
|
||||
|
||||
## Agent pool
|
||||
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@ Ledger dos guardrails determinísticos colhidos de `kind:agent-miss` (fluxo `pnp
|
|||
|
||||
| Guarda | Origem | Classe | Mecanismo | Status |
|
||||
| ---------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------- | --------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------- |
|
||||
| `agent:ship` exige stamp de /simplify casado com HEAD; PR Ready + auto-merge + watch até MERGED | [#83](https://github.com/fsolla/teqo/issues/83) | 3 (script + hooks) | `scripts/agent-ship.mjs`, `.agents/hooks/guard-pr-create.mjs` (bloqueia `gh pr create` manual), `.agents/hooks/pr-merge-watchdog.mjs` (re-engata com PR aberto) | vivo desde 2026-07-31 (PR #89); miss fechada no Pass 4 |
|
||||
| `agent:ship` exige stamp de /simplify casado com HEAD; PR Ready + auto-merge + watch até MERGED | [#83](https://github.com/fsolla/teqo/issues/83) | 3 (script + hooks) | `scripts/agent-ship.mjs`, `.cursor/hooks/guard-pr-create.mjs` (bloqueia `gh pr create` manual), `.cursor/hooks/pr-merge-watchdog.mjs` (re-engata com PR aberto) | vivo desde 2026-07-31 (PR #89); miss fechada no Pass 4 |
|
||||
| Alocador de municípios em specs — sem slug fixo + mutação; sem `municipio=<slug>` em e2e; regex de nome de catálogo ancorada | [#73](https://github.com/fsolla/teqo/issues/73) | 3 | `tests/unit/testMunicipalityAllocatorConventions.unit.spec.ts` (3 regras; mutações = assign/touch/create\*/`payload.update` municipality) | PR [#93](https://github.com/fsolla/teqo/pull/93) (Pass 4) |
|
||||
| Sheet compartilhada por lista — chip cells exigem `CampaignListSheetProvider`; invariante dev no overlay | [#52](https://github.com/fsolla/teqo/issues/52) | 3 + 5 | `tests/unit/sharedSheetHostConventions.unit.spec.ts`; `console.error` development-only em `CampaignCellEditOverlay` | PR [#94](https://github.com/fsolla/teqo/pull/94) (Pass 4) |
|
||||
| Navegação e2e assentada — goto→goto sem settle falha o build | [#54](https://github.com/fsolla/teqo/issues/54) | 3 | `tests/unit/e2eNavigationConventions.unit.spec.ts` (settle = await expect/waitForURL/click/reload/login/catch) | PR [#95](https://github.com/fsolla/teqo/pull/95) (Pass 4) |
|
||||
|
|
|
|||
|
|
@ -347,7 +347,7 @@ ou deixar bloqueada.
|
|||
|
||||
- **Fase 0 — spike (30–45 min, antes de qualquer PR):** `GET /v1/me` + `GET /v1/models` (dump
|
||||
commitado neste plano); spawn de 1 agente de teste no repo com `model.id` explícito e prompt
|
||||
trivial; confirmar: boot via `.agents/environment.json`, `gh` autenticado no worker, tempo real
|
||||
trivial; confirmar: boot via `.cursor/environment.json`, `gh` autenticado no worker, tempo real
|
||||
de boot, formato exato do `agentId` cliente (`bc-…`) e o `409` no re-POST. Resultado: seção de
|
||||
evidências atualizada + tabela de mapeamento de modelos.
|
||||
- **Fase 1 — fundação read-only (appetite ~2–3h de sessão):** PR A — eligibility, state,
|
||||
|
|
@ -367,7 +367,7 @@ de spec — ops infra). **Schedule só ativa após o promote humano a `main`.**
|
|||
|
||||
- `pnpm agent:promote` (promote `stage→main` é humano — o pool nunca chama).
|
||||
- Qualquer `DATABASE_URL` de stage/prod no supervisor ou nos workers (Cloud usa
|
||||
`.agents/cloud-setup.sh` + seed mínimo; o workflow não recebe secrets de banco).
|
||||
`.cursor/cloud-setup.sh` + seed mínimo; o workflow não recebe secrets de banco).
|
||||
- Editar Issues `in-progress` de outros agentes/humanos (o pool só toca as que ele claimou).
|
||||
- Substituir ou alterar o fluxo `plan-issue` → `work-issue` para Issues normais.
|
||||
- Supervisor local (`/loop`, `while` em shell, daemon em VPS) como default — rejeitado.
|
||||
|
|
@ -488,7 +488,7 @@ EXPIRED`, com `git.branches[].prUrl`. SSE stream existe mas não é necessária
|
|||
cron "pode atrasar, nunca adianta". Avaliado como supervisor e rejeitado para v1 (D1); fica
|
||||
como plano B de superfície.
|
||||
Fonte: <https://cursor.com/docs/cloud-agent/automations>.
|
||||
7. **Ambiente do worker:** repo-file managed (`.agents/environment.json` presente → install
|
||||
7. **Ambiente do worker:** repo-file managed (`.cursor/environment.json` presente → install
|
||||
`pnpm install + cloud-setup.sh`: Postgres nativo + migrate + seed mínimo, sem secrets de
|
||||
stage/prod). Confirmado pelo MCP `cursor-cloud-environment-info` deste próprio run.
|
||||
8. **MCP `cursor-cloud`** (diagnóstico): `list-cloud-agents` com filtros de status/fonte,
|
||||
|
|
@ -500,7 +500,7 @@ EXPIRED`, com `git.branches[].prUrl`. SSE stream existe mas não é necessária
|
|||
Verificado neste run (Cloud Agent `bc-9cd1a18c-…`, repo fsolla/teqo):
|
||||
|
||||
- **Environment repo-file confirmado em produção:** o `environment-info` deste run reporta
|
||||
`source: Repository` + `environmentJsonPath: .agents/environment.json` — workers spawnados
|
||||
`source: Repository` + `environmentJsonPath: .cursor/environment.json` — workers spawnados
|
||||
pela API neste repo bootam com `pnpm install` + `cloud-setup.sh` (Postgres nativo + migrate +
|
||||
seed mínimo), sem secrets de stage/prod. Item 7 acima confirmado empiricamente.
|
||||
- **Formato de id:** runs usam `bc-<uuid>` (este run: `bc-9cd1a18c-3f2b-4661-b18b-401db63c1182`),
|
||||
|
|
|
|||
|
|
@ -42,7 +42,7 @@ export const buildPoolWorkerPrompt = ({ issueNumber, issueTitle, issueId, planPa
|
|||
'',
|
||||
'## Proibido',
|
||||
'',
|
||||
'- `DATABASE_URL` de prod ou `ALLOW_REMOTE_DB` — o setup local (`.agents/cloud-setup.sh` + seed mínimo) cobre tudo.',
|
||||
'- `DATABASE_URL` de prod ou `ALLOW_REMOTE_DB` — o setup local (`.cursor/cloud-setup.sh` + seed mínimo) cobre tudo.',
|
||||
`- Editar outras Issues \`in-progress\` ou trabalhar fora da Issue #${issueNumber}.`,
|
||||
'- Tratar o plano de intenção como contrato de engenharia — ele é intenção; o `*-impl.md` é a engenharia.',
|
||||
'',
|
||||
|
|
|
|||
Loading…
Reference in a new issue