repo-harness 0.5.0 → 0.5.2
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/README.es.md +201 -53
- package/README.fr.md +203 -55
- package/README.ja.md +196 -40
- package/README.md +91 -32
- package/README.zh-CN.md +190 -25
- package/SKILL.md +1 -0
- package/assets/hooks/session-start-context.sh +130 -0
- package/assets/reference-configs/agentic-development-flow.md +2 -1
- package/assets/reference-configs/external-tooling.md +29 -2
- package/assets/reference-configs/sprint-contracts.md +4 -0
- package/assets/skill-commands/manifest.json +9 -2
- package/assets/skill-commands/repo-harness-goal/SKILL.md +51 -0
- package/assets/skill-commands/repo-harness-prd/SKILL.md +15 -6
- package/assets/skill-version.json +10 -2
- package/assets/skills/claude-review/SKILL.md +114 -4
- package/assets/templates/helpers/check-agent-tooling.sh +129 -5
- package/assets/templates/helpers/ensure-task-workflow.sh +1 -1
- package/assets/templates/helpers/verify-contract.sh +12 -4
- package/install.ps1 +53 -0
- package/install.sh +71 -0
- package/package.json +5 -2
- package/scripts/check-agent-tooling.sh +129 -5
- package/scripts/check-ci.sh +36 -0
- package/scripts/check-npm-release.sh +1 -17
- package/scripts/create-project-dirs.sh +9 -0
- package/scripts/ensure-task-workflow.sh +1 -1
- package/scripts/init-project.sh +9 -0
- package/scripts/lib/project-init-lib.sh +24 -1
- package/scripts/migrate-project-template.sh +93 -32
- package/scripts/sync-codex-installed-copies.sh +23 -7
- package/scripts/verify-contract.sh +12 -4
- package/src/cli/commands/doctor.ts +32 -8
- package/src/cli/commands/global-runtime.ts +2 -2
- package/src/cli/commands/init-hook.ts +59 -0
- package/src/cli/commands/init.ts +69 -35
- package/src/cli/commands/security.ts +148 -5
- package/src/cli/commands/status.ts +13 -1
- package/src/cli/hook/runtime.ts +1 -1
- package/src/cli/index.ts +2 -2
- package/src/cli/installer/managed-entries.ts +1 -1
package/README.es.md
CHANGED
|
@@ -1,17 +1,30 @@
|
|
|
1
1
|
# repo-harness
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
Claude
|
|
3
|
+
<p align="center">
|
|
4
|
+
<img src="docs/images/image.png" alt="One next button joining Claude and Codex under repo-harness workflow rules" width="760">
|
|
5
|
+
</p>
|
|
6
|
+
|
|
7
|
+
`repo-harness` convierte las sesiones de programación con Claude/Codex en un
|
|
8
|
+
workflow repo-local repetible. Incluye un CLI y hooks de skill/runtime que
|
|
9
|
+
escriben contexto, planes, handoffs, checks y evidencias de review dentro del
|
|
10
|
+
proyecto, para que la siguiente sesión de agente continúe desde archivos y no
|
|
11
|
+
desde el historial de chat.
|
|
12
|
+
|
|
13
|
+
Úsalo para:
|
|
14
|
+
|
|
15
|
+
- adoptar un repositorio existente con un contrato de agente tasks-first
|
|
16
|
+
- mantener Claude y Codex alineados sobre los mismos planes, checks, handoffs y
|
|
17
|
+
límites de contexto
|
|
18
|
+
- gastar menos tokens redescubriendo estructura gracias a CodeGraph y la carga
|
|
19
|
+
progresiva de contexto
|
|
20
|
+
|
|
21
|
+
Entrega al agente un PRD o Sprint completo; después, tu bucle es solo review and
|
|
22
|
+
`next`, o iniciar `/goal` y quedar AFK.
|
|
5
23
|
|
|
6
24
|
[English](README.md) | [简体中文](README.zh-CN.md) | [日本語](README.ja.md) | [Français](README.fr.md) | [Español](README.es.md)
|
|
7
25
|
|
|
8
26
|
Dirección del repositorio: `https://github.com/Ancienttwo/repo-harness`
|
|
9
27
|
|
|
10
|
-
`repo-harness` es un harness de workflow que aterriza el proceso de programación
|
|
11
|
-
con IA en archivos del repositorio. Es a la vez el repositorio fuente de la CLI
|
|
12
|
-
`repo-harness` y de su skill runtime, y el ejemplo autoalojado del workflow
|
|
13
|
-
repo-local que él mismo genera para los proyectos downstream.
|
|
14
|
-
|
|
15
28
|
## Por qué usar repo-harness
|
|
16
29
|
|
|
17
30
|
- **El estado de la sesión vive en archivos, no en el historial de chat.** Las
|
|
@@ -34,43 +47,21 @@ repo-local que él mismo genera para los proyectos downstream.
|
|
|
34
47
|
1KB o consulta el índice, en vez de gastar miles de tokens redescubriendo la
|
|
35
48
|
estructura.
|
|
36
49
|
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
- **
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
Sigue siendo advisory: no instala dependencias, no ejecuta el readiness probe
|
|
53
|
-
pesado y no bloquea el prompt si CodeGraph no está disponible.
|
|
54
|
-
- **Centinela de seguridad (`repo-harness security scan` + `security-sentinel.sh`).**
|
|
55
|
-
Una verificación de solo lectura sobre las superficies de inyección de
|
|
56
|
-
configuración de alto valor (`~/.claude/settings.json`, `~/.codex/hooks.json`,
|
|
57
|
-
el `.vscode/tasks.json` repo-local y los adapters legacy a nivel de proyecto
|
|
58
|
-
`.claude`/`.codex`). Marca patrones de comando sospechosos —pipes de remote
|
|
59
|
-
shell, base64-decode-to-exec, `osascript`, persistencia con
|
|
60
|
-
`launchctl`/`crontab`, netcat, ejecución inline de intérpretes—, además de
|
|
61
|
-
hooks no gestionados y tareas `folderOpen` de ejecución automática, y nunca
|
|
62
|
-
modifica ninguna configuración. El centinela de `SessionStart` toma una huella
|
|
63
|
-
de este conjunto y solo reescanea cuando la huella cambia, para no generar
|
|
64
|
-
ruido en el session-start. Auditoría bajo demanda:
|
|
65
|
-
`repo-harness security scan --json`.
|
|
66
|
-
- **Ciclo de vida draft-plan de Claude/Codex.** El Plan mode tiene explícitamente
|
|
67
|
-
dos etapas: Draft y Approved. Los hooks reconocen la intención de crear un plan
|
|
68
|
-
y rastrean la pending orchestration; un stop gate (`stop-orchestrator.sh`) exige
|
|
69
|
-
que la sesión haga una pasada de autorevisión antes de terminar con el plan sin
|
|
70
|
-
definir. Captura un borrador con `scripts/capture-plan.sh --slug <slug> --title
|
|
71
|
-
<title> --status Draft`, después promociónalo a Approved y proyéctalo a
|
|
72
|
-
ejecución con `--execute` o `scripts/plan-to-todo.sh --plan <plan>`. Los plans
|
|
73
|
-
se convierten en la fuente de verdad a nivel de archivo en `plans/`.
|
|
50
|
+
En un repositorio adoptado, la superficie se mantiene pequeña:
|
|
51
|
+
|
|
52
|
+
| Surface | Propósito |
|
|
53
|
+
| --- | --- |
|
|
54
|
+
| `docs/spec.md` y `docs/reference-configs/` | Estándares compartidos e intención de producto estable que cada sesión de agente puede leer. |
|
|
55
|
+
| `plans/`, `plans/prds/` y `plans/sprints/` | Work packages decision-complete antes de empezar la implementación. |
|
|
56
|
+
| `tasks/contracts/`, `tasks/reviews/` y `.ai/harness/checks/` | Scope, verificación y evidencia de review para probar que el trabajo terminó. |
|
|
57
|
+
| `.ai/harness/handoff/` y `tasks/current.md` | Session journal y estado resumible, derivados de workflow artifacts en vez de chat memory. |
|
|
58
|
+
|
|
59
|
+
## Novedades en 0.5.2
|
|
60
|
+
|
|
61
|
+
- **Tooling advisories más silenciosos.** Los update checks de SessionStart usan por defecto un timestamp cache semanal, para que los avisos de Waza y CodeGraph no aparezcan en cada sesión.
|
|
62
|
+
- **Safety hooks locales revisados.** `repo-harness security scan` separa active findings y reviewed exceptions; los hooks user-level warning-only necesitan exact command match, y los comandos de alto riesgo siguen activos.
|
|
63
|
+
- **Setup checks más limpios.** `repo-harness setup check --check-updates` trata el skip de DB de gbrain fast-mode como readiness aceptado, pero mantiene visibles los warnings reales de gbrain.
|
|
64
|
+
- **Cross-review más resistente.** El skill bundled `claude-review` puede recuperar resultados print-mode con stdout vacío desde los transcripts de sesión de Claude Code.
|
|
74
65
|
|
|
75
66
|
## Qué hace el producto
|
|
76
67
|
|
|
@@ -200,16 +191,41 @@ retoma contra un sprint concreto en vez de reinterpretar el chat original.
|
|
|
200
191
|
Esta es la ruta más rápida para evaluar si un repositorio real es apto para
|
|
201
192
|
adoptar este workflow.
|
|
202
193
|
|
|
203
|
-
### Instalar
|
|
194
|
+
### Instalar el CLI
|
|
195
|
+
|
|
196
|
+
La ruta por defecto no requiere Node.js: el instalador usa Bun como runtime. Si
|
|
197
|
+
Bun no existe, instala Bun primero y después instala el CLI `repo-harness`.
|
|
204
198
|
|
|
205
199
|
```bash
|
|
200
|
+
# macOS / Linux
|
|
201
|
+
curl -fsSL https://raw.githubusercontent.com/Ancienttwo/repo-harness/main/install.sh | sh
|
|
202
|
+
|
|
203
|
+
# Windows (PowerShell)
|
|
204
|
+
irm https://raw.githubusercontent.com/Ancienttwo/repo-harness/main/install.ps1 | iex
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
<details>
|
|
208
|
+
<summary>¿Ya tienes Bun o Node? Usa gestores de paquetes</summary>
|
|
209
|
+
|
|
210
|
+
```bash
|
|
211
|
+
# Bun
|
|
212
|
+
bun add -g repo-harness
|
|
213
|
+
repo-harness init
|
|
214
|
+
|
|
215
|
+
# Node/npm, con Bun ya en PATH porque el CLI corre sobre Bun
|
|
206
216
|
npx -y repo-harness init
|
|
207
217
|
```
|
|
208
218
|
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
219
|
+
</details>
|
|
220
|
+
|
|
221
|
+
### Bootstrap del runtime del host
|
|
222
|
+
|
|
223
|
+
```bash
|
|
224
|
+
repo-harness init
|
|
225
|
+
```
|
|
226
|
+
|
|
227
|
+
`repo-harness init` es el bootstrap global, `repo-harness update` es el refresco
|
|
228
|
+
user-level y `repo-harness adopt` es el refresco repo-local. `repo-harness init`
|
|
213
229
|
configura el CLI, los hook adapters de nivel usuario, Waza, Mermaid, el brain
|
|
214
230
|
root y CodeGraph MCP; el viejo camino Claude plugin `scripts/setup-plugins.sh`
|
|
215
231
|
queda retirado.
|
|
@@ -267,7 +283,7 @@ El comando debería terminar imprimiendo `=== Migration Report ===`, e incluir:
|
|
|
267
283
|
- `Host hook config target: user-level ~/.claude/settings.json and ~/.codex/hooks.json`: dónde está la capa del adapter
|
|
268
284
|
- `Host hook adapters are user-level:`: recordatorio de instalar los global adapters y de confiar en `~/.codex/hooks.json`
|
|
269
285
|
- `Workflow migration:`: el plan de creación o refresco de las repo-local harness surfaces
|
|
270
|
-
- `Helper
|
|
286
|
+
- `Helper runtime:`: la cadena de herramientas operativa que obtendrás tras aplicar
|
|
271
287
|
- `--- External Tooling ---`: el routing de gstack/Waza/gbrain más las advisory de instalación/actualización
|
|
272
288
|
|
|
273
289
|
### Los dos comandos siguientes
|
|
@@ -289,6 +305,22 @@ Si la salida del dry-run no es correcta, detente aquí primero y lee
|
|
|
289
305
|
- Codex debe confiar en `~/.codex/hooks.json` en sus Settings para que los hooks se ejecuten.
|
|
290
306
|
- Orden de depuración: user-level adapter config -> `repo-harness-hook` o el fallback `repo-harness hook` -> route registry -> `.ai/hooks/*`.
|
|
291
307
|
|
|
308
|
+
|
|
309
|
+
The installed adapter owns eight managed hook routes. The route tuple
|
|
310
|
+
`event + routeId + matcher` is the stable contract; script names are the current
|
|
311
|
+
implementation under `assets/hooks/` or a repo-pinned `.ai/hooks/` copy.
|
|
312
|
+
|
|
313
|
+
| Route | Matcher | Scripts | Function |
|
|
314
|
+
| --- | --- | --- | --- |
|
|
315
|
+
| `SessionStart.default` | all sessions | `session-start-context.sh`, `security-sentinel.sh` | Injects prior handoff, sprint status, and read-only config-security findings before work starts. |
|
|
316
|
+
| `PreToolUse.edit` | `Edit|Write` | `worktree-guard.sh`, `pre-edit-guard.sh` | Enforces worktree policy and plan/contract readiness before implementation edits. |
|
|
317
|
+
| `PreToolUse.subagent` | `Task|Agent|SendUserMessage` | `subagent-return-channel-guard.sh` | Keeps delegated work returning through the parent session instead of leaking completion claims. |
|
|
318
|
+
| `PostToolUse.edit` | `Edit|Write` | `post-edit-guard.sh` | Records edit traces, refreshes handoff/task status, and queues architecture drift when controlled files change. |
|
|
319
|
+
| `PostToolUse.bash` | `Bash` | `post-bash.sh` | Observes command results and captures verification evidence without replacing the command runner. |
|
|
320
|
+
| `PostToolUse.always` | all tools | `post-tool-observer.sh` | Provides low-noise always-on trace and runtime observation; stale pinned copies soft-skip with a refresh hint. |
|
|
321
|
+
| `UserPromptSubmit.default` | all prompts | `prompt-guard.sh` | Classifies prompt intent, routes planning/check/hunt hints, and renders host-safe workflow guidance. |
|
|
322
|
+
| `Stop.default` | session stop | `stop-orchestrator.sh` | Finalizes handoff and guards against ending with unresolved draft-plan or completion evidence gaps. |
|
|
323
|
+
|
|
292
324
|
`SessionStart` ejecuta dos scripts ordenados antes de empezar el trabajo:
|
|
293
325
|
|
|
294
326
|
```mermaid
|
|
@@ -346,8 +378,8 @@ Guards habituales:
|
|
|
346
378
|
|
|
347
379
|
## Release actual
|
|
348
380
|
|
|
349
|
-
- npm package: `repo-harness@0.5.
|
|
350
|
-
- Generated workflow stamp: `repo-harness@0.5.
|
|
381
|
+
- npm package: `repo-harness@0.5.2`
|
|
382
|
+
- Generated workflow stamp: `repo-harness@0.5.2+template@0.5.2`
|
|
351
383
|
- GitHub repository: `Ancienttwo/repo-harness`
|
|
352
384
|
- Release history: [`docs/CHANGELOG.md`](docs/CHANGELOG.md)
|
|
353
385
|
|
|
@@ -359,6 +391,13 @@ Guards habituales:
|
|
|
359
391
|
- `scripts/inspect-project-state.ts`
|
|
360
392
|
- `scripts/migrate-workflow-docs.ts`
|
|
361
393
|
- `assets/workflow-contract.v1.json`
|
|
394
|
+
- Runtime mode is configurable with template vars:
|
|
395
|
+
- `{{RUNTIME_MODE}}`
|
|
396
|
+
- `{{RUNTIME_PROFILE}}`
|
|
397
|
+
- `{{RECOVERY_PROFILE}}`
|
|
398
|
+
- `{{STATE_PROFILE}}`
|
|
399
|
+
- Question-pack source of truth is in:
|
|
400
|
+
- `assets/initializer-question-pack.v4.json`
|
|
362
401
|
- Los generated repos usan por defecto el repo-local harness flow:
|
|
363
402
|
- `docs/spec.md -> plans/ -> tasks/contracts/ -> tasks/reviews/ -> .ai/context/context-map.json -> .ai/harness/*`
|
|
364
403
|
- `repo-harness update` refresca las runtime pieces de usuario:
|
|
@@ -385,15 +424,45 @@ Gracias a [Garry Tan](https://x.com/garrytan), autor de gstack y gbrain. Ambos
|
|
|
385
424
|
influyeron en el workflow de product discovery, plan/design review, release
|
|
386
425
|
documentation, knowledge sync y handoff retrieval.
|
|
387
426
|
|
|
427
|
+
|
|
428
|
+
### Atribución de contribuidor en GitHub
|
|
429
|
+
|
|
430
|
+
Cuando Codex contribuya materialmente a un commit, usa el trailer co-author estándar de GitHub al final del commit message:
|
|
431
|
+
|
|
432
|
+
```text
|
|
433
|
+
Co-authored-by: codex <codex@openai.com>
|
|
434
|
+
```
|
|
435
|
+
|
|
436
|
+
Mantén esta atribución opt-in y visible por commit. No la incorpores en scripts de commit ni hooks downstream de repo-harness salvo que ese repo adopte explícitamente la misma política.
|
|
437
|
+
|
|
388
438
|
## Action Command Skills
|
|
389
439
|
|
|
390
440
|
Los command facades públicos están en `assets/skill-commands/`; preservan la
|
|
391
441
|
compatibilidad de discovery por skills, mientras el CLI y los hooks ejecutan:
|
|
392
442
|
|
|
393
443
|
- Planning / review: `repo-harness-plan`, `repo-harness-review`, `repo-harness-autoplan`
|
|
444
|
+
- Product planning layer: `repo-harness-prd` (activa `$geju`, luego usa drafting Claude-first con `claude -p --model opus`; Codex queda solo como fallback)
|
|
445
|
+
- Sprint program layer: `repo-harness-sprint` (convierte un PRD en un backlog ordenado bajo `plans/sprints/`)
|
|
446
|
+
- Goal session layer: `repo-harness-goal` / `repo-harness:goal` (prepara prompts `/goal` de Codex/Claude desde un PRD o Sprint detallado; si falta el documento, lo pide primero)
|
|
394
447
|
- Repo workflow actions: `repo-harness-ship`, `repo-harness-init`, `repo-harness-migrate`, `repo-harness-upgrade`, `repo-harness-capability`, `repo-harness-architecture`, `repo-harness-handoff`, `repo-harness-deploy`, `repo-harness-repair`, `repo-harness-check`
|
|
395
448
|
- Branch project creation: `repo-harness-scaffold`
|
|
396
449
|
|
|
450
|
+
La cadena de planning está separada por capas:
|
|
451
|
+
|
|
452
|
+
```text
|
|
453
|
+
idea -> repo-harness-prd -> repo-harness-sprint from-prd -> repo-harness-goal
|
|
454
|
+
```
|
|
455
|
+
|
|
456
|
+
Usa `repo-harness-prd` cuando la fuente todavía es una idea de producto: primero
|
|
457
|
+
ejecuta un direction pass con `$geju`, luego pide a Claude vía `claude -p --model opus` que
|
|
458
|
+
redacte el PRD, con Codex solo como fallback. Usa
|
|
459
|
+
`repo-harness-sprint from-prd <plans/prds/*.prd.md>` para convertir un PRD
|
|
460
|
+
aprobado en un Sprint backlog ordenado con acceptance lines verificables por
|
|
461
|
+
máquina. Usa `repo-harness-goal` solo cuando ya exista un PRD o Sprint detallado;
|
|
462
|
+
prepara un prompt `/goal` acotado para Codex/Claude y mantiene el PRD/Sprint como
|
|
463
|
+
source of truth. Si falta ese documento, el goal command debe pedirlo antes de
|
|
464
|
+
empezar implementación desde el chat.
|
|
465
|
+
|
|
397
466
|
`repo-harness adopt` se usa para repositorios existentes; `repo-harness-scaffold`
|
|
398
467
|
queda como branch command para crear proyectos o módulos nuevos. `hooks-init`, `docs-init` y
|
|
399
468
|
`create-project-dirs` son pasos internos, no commands públicos.
|
|
@@ -409,6 +478,23 @@ bun scripts/inspect-project-state.ts --repo . --format text
|
|
|
409
478
|
bash scripts/migrate-project-template.sh --repo . --dry-run
|
|
410
479
|
```
|
|
411
480
|
|
|
481
|
+
|
|
482
|
+
### Runtime reference docs
|
|
483
|
+
|
|
484
|
+
Generic repo-harness runtime/reference docs live in the installed package under
|
|
485
|
+
`assets/reference-configs/` and are resolved through the CLI:
|
|
486
|
+
|
|
487
|
+
```bash
|
|
488
|
+
repo-harness docs list
|
|
489
|
+
repo-harness docs path harness-overview
|
|
490
|
+
repo-harness docs show harness-overview
|
|
491
|
+
```
|
|
492
|
+
|
|
493
|
+
Generated and migrated repos still keep `docs/reference-configs/*.md`, but
|
|
494
|
+
those files are deterministic pointer stubs. Repo-local workflow state,
|
|
495
|
+
policy, checks, runs, handoff packets, context maps, and helper snapshots stay
|
|
496
|
+
under `.ai/`.
|
|
497
|
+
|
|
412
498
|
### Template assembly
|
|
413
499
|
|
|
414
500
|
```bash
|
|
@@ -425,7 +511,23 @@ bash scripts/check-task-workflow.sh --strict
|
|
|
425
511
|
bun scripts/inspect-project-state.ts --repo . --format text
|
|
426
512
|
bash scripts/migrate-project-template.sh --repo . --dry-run
|
|
427
513
|
bash scripts/check-agent-tooling.sh --host both --check-updates
|
|
428
|
-
bun run benchmark:skills --
|
|
514
|
+
bun run benchmark:skills --eval route-workflow-check
|
|
515
|
+
```
|
|
516
|
+
|
|
517
|
+
|
|
518
|
+
### Local benchmark skeleton
|
|
519
|
+
|
|
520
|
+
```bash
|
|
521
|
+
bun run benchmark:skills --eval route-workflow-check
|
|
522
|
+
```
|
|
523
|
+
|
|
524
|
+
Eval output is the release/readiness evidence path; dry-run benchmark wiring is only a smoke and is not skill-effectiveness evidence.
|
|
525
|
+
|
|
526
|
+
|
|
527
|
+
### Run one eval across both Claude and Codex
|
|
528
|
+
|
|
529
|
+
```bash
|
|
530
|
+
bun run benchmark:skills --eval repair-agents-task-sync
|
|
429
531
|
```
|
|
430
532
|
|
|
431
533
|
## Key Files
|
|
@@ -435,8 +537,54 @@ bun run benchmark:skills --dry-run
|
|
|
435
537
|
- Plan mapping: `assets/plan-map.json`
|
|
436
538
|
- Question-pack: `assets/initializer-question-pack.v4.json`
|
|
437
539
|
- Shared hooks: `assets/hooks/`
|
|
540
|
+
- Runtime reference docs: `assets/reference-configs/` via `repo-harness docs`
|
|
438
541
|
- Workflow contract: `assets/workflow-contract.v1.json`
|
|
439
542
|
- Hook operations reference: `docs/reference-configs/hook-operations.md`
|
|
440
543
|
- Template assembler: `scripts/assemble-template.ts`
|
|
441
544
|
- State inspector: `scripts/inspect-project-state.ts`
|
|
545
|
+
- External tooling detector: `scripts/check-agent-tooling.sh`
|
|
546
|
+
- Scaffolding scripts:
|
|
547
|
+
- `scripts/init-project.sh`
|
|
548
|
+
- `scripts/create-project-dirs.sh`
|
|
442
549
|
- Legacy-doc migrator: `scripts/migrate-workflow-docs.ts`
|
|
550
|
+
|
|
551
|
+
## Generated vs Self-Hosted Hook Parity
|
|
552
|
+
|
|
553
|
+
- El comportamiento downstream de hooks lo define la salida generada desde `assets/hooks/` y `assets/reference-configs/`.
|
|
554
|
+
- Este repo dogfoodea el mismo contract, pero el comportamiento self-host no se sincroniza mágicamente con los generated repos; cada cambio debe actualizar explícitamente ambas superficies cuando aplique.
|
|
555
|
+
- Todo cambio de hook debe indicar si afecta a `self-host`, `generated` o `both`.
|
|
556
|
+
|
|
557
|
+
## Package Manager Defaults
|
|
558
|
+
|
|
559
|
+
- Prioridad general por defecto: `bun > pnpm > npm`
|
|
560
|
+
- **Plan G/H** (Python-centric) usa **`uv`** como primary package manager por defecto.
|
|
561
|
+
|
|
562
|
+
## Runtime Profiles
|
|
563
|
+
|
|
564
|
+
- `Plan-only (recommended)` (default)
|
|
565
|
+
- `Plan + Permissionless`
|
|
566
|
+
- `Standard (ask before each action)`
|
|
567
|
+
|
|
568
|
+
Se configura en `assets/initializer-question-pack.v4.json` y lo consume `scripts/initializer-question-pack.ts`.
|
|
569
|
+
|
|
570
|
+
## Verification
|
|
571
|
+
|
|
572
|
+
Para release review usa el gate único equivalente a CI:
|
|
573
|
+
|
|
574
|
+
```bash
|
|
575
|
+
bun run check:ci
|
|
576
|
+
```
|
|
577
|
+
|
|
578
|
+
Ese gate se expande a los checks propios del repo; `bun run check:release` solo añade el preflight de npm unpublished-version antes de delegar al mismo gate.
|
|
579
|
+
|
|
580
|
+
```bash
|
|
581
|
+
bun test
|
|
582
|
+
bash scripts/check-deploy-sql-order.sh
|
|
583
|
+
bash scripts/check-architecture-sync.sh
|
|
584
|
+
bash scripts/check-task-sync.sh
|
|
585
|
+
bash scripts/check-task-workflow.sh --strict
|
|
586
|
+
bun scripts/inspect-project-state.ts --repo . --format text
|
|
587
|
+
bash scripts/migrate-project-template.sh --repo . --dry-run
|
|
588
|
+
bash scripts/check-agent-tooling.sh --host both --check-updates
|
|
589
|
+
bun run benchmark:skills --eval route-workflow-check
|
|
590
|
+
```
|