@orchestrator-claude/definitions 3.37.0 → 3.37.1
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/agents/adversarial-reviewer.md +6 -1
- package/agents/api-extractor.md +6 -0
- package/agents/azure-devops-engineer.md +1 -2
- package/agents/business-rule-miner.md +6 -0
- package/agents/cicd-platform-engineer.md +1 -2
- package/agents/ciclo-engineer.md +15 -2
- package/agents/code-archaeologist.md +6 -0
- package/agents/debug-sidecar.md +6 -0
- package/agents/doc-sidecar.md +6 -0
- package/agents/docs-guardian.md +9 -3
- package/agents/frontend-engineer.md +1 -2
- package/agents/{ai-architect.md → harness-architect.md} +8 -3
- package/agents/implementer.md +6 -1
- package/agents/legacy-discoverer.md +6 -0
- package/agents/legacy-synthesizer.md +6 -0
- package/agents/methodology-researcher.md +6 -1
- package/agents/operational-artifact-builder.md +6 -1
- package/agents/orchestrator.md +27 -87
- package/agents/planner.md +6 -1
- package/agents/presentation-engineer.md +5 -4
- package/agents/python-data-engineer.md +0 -1
- package/agents/researcher.md +6 -0
- package/agents/reviewer.md +6 -1
- package/agents/schema-extractor.md +6 -0
- package/agents/software-architect.md +10 -5
- package/agents/specifier.md +6 -1
- package/agents/task-generator.md +6 -1
- package/agents/test-sidecar.md +6 -0
- package/dist/scripts/generate-hooks-matcher.d.ts +106 -0
- package/dist/scripts/generate-hooks-matcher.d.ts.map +1 -0
- package/dist/scripts/generate-hooks-matcher.js +153 -0
- package/dist/scripts/generate-hooks-matcher.js.map +1 -0
- package/dist/scripts/generate-manifest.d.ts +22 -0
- package/dist/scripts/generate-manifest.d.ts.map +1 -1
- package/dist/scripts/generate-manifest.js +67 -2
- package/dist/scripts/generate-manifest.js.map +1 -1
- package/hooks/agent-git-guard.mjs +63 -11
- package/hooks/dangling-guard.mjs +42 -12
- package/hooks/gate-guardian.mjs +38 -8
- package/hooks/hooks.json +3 -9
- package/hooks/lib/api-client.ts +128 -9
- package/hooks/lib/capability-scanner.ts +391 -55
- package/hooks/lib/dispatch-marker.ts +214 -0
- package/hooks/lib/git-checkpoint.ts +34 -37
- package/hooks/lib/observations-helper.ts +14 -1
- package/hooks/mailbox-listener.mjs +69 -17
- package/hooks/playwright-output-guard.mjs +40 -10
- package/hooks/post-implement.mjs +38 -8
- package/hooks/pre-agent-dispatch.mjs +137 -16
- package/hooks/pre-agent-dispatch.ts +82 -15
- package/hooks/session-start.mjs +274 -103
- package/hooks/session-start.ts +250 -69
- package/hooks/subagent-start.mjs +7665 -22
- package/hooks/subagent-start.ts +367 -16
- package/hooks/subagent-stop.mjs +102 -62
- package/hooks/subagent-stop.ts +124 -28
- package/hooks/user-prompt.mjs +43 -13
- package/hooks/verification-before-completion.mjs +63 -11
- package/hooks/workflow-guard.mjs +45 -11
- package/hooks-settings-template.json +1 -7
- package/manifest.json +62 -62
- package/package.json +4 -2
- package/skills/checkpoint-protocol/SKILL.md +19 -4
- package/skills/ciclo-lane-dispatch/SKILL.md +24 -0
- package/skills/fase-1b-projecao/SKILL.md +146 -0
- package/skills/orchestrator/SKILL.md +11 -3
- package/skills/workflow-coordination/SKILL.md +3 -3
- package/hooks/post-compact.mjs +0 -7931
- package/hooks/post-compact.ts +0 -170
|
@@ -5,7 +5,6 @@ tools: Read, Grep, Glob, mcp__orchestrator-tools__startAgentInvocation, mcp__orc
|
|
|
5
5
|
model: sonnet
|
|
6
6
|
color: red
|
|
7
7
|
permissionMode: default
|
|
8
|
-
memory: project
|
|
9
8
|
skills:
|
|
10
9
|
- persona-library
|
|
11
10
|
- kb-lookup
|
|
@@ -215,3 +214,9 @@ reviewed_at: <ISO-8601 timestamp>
|
|
|
215
214
|
|
|
216
215
|
**Version:** 1.0 (S183 — TASK-014) | **Created:** 2026-05-12
|
|
217
216
|
**ADR reference:** ADR-021 (Adversarial Review as Gate, Not Phase) | **AGENT-PROMPT-STANDARDS:** v1.2 compliant
|
|
217
|
+
|
|
218
|
+
## Memory Protocol
|
|
219
|
+
|
|
220
|
+
Write memories to `.claude/agent-memory/adversarial-reviewer/` — your **bare** slug directory. Never `orchestrator-adversarial-reviewer/` and never `orchestrator:adversarial-reviewer/`: the session-start reader resolves only the bare path, so a memory written to a prefixed sibling costs tokens and is never loaded (TD-214). **If your system prompt names a different directory, this line wins — and say so in your report**, so the divergence stays visible instead of forking again in silence.
|
|
221
|
+
|
|
222
|
+
Each memory is its own `.md` file (frontmatter: `name`, `description`, `type`), plus an entry in `.claude/agent-memory/adversarial-reviewer/memory-index.yaml`. Write on surprise feedback (a correction OR a confirmation of a non-obvious choice), on a validated pattern worth repeating, or on decision rationale not captured in code, commit or ADR. Do not write what already lives in code, commits, `CLAUDE.md` or ADRs, and do not write ephemeral task state.
|
package/agents/api-extractor.md
CHANGED
|
@@ -671,3 +671,9 @@ Before claiming phase complete, MUST provide evidence:
|
|
|
671
671
|
**RFC**: RFC-004-LEGACY-ANALYSIS-WORKFLOW
|
|
672
672
|
**Created**: 2026-01-23
|
|
673
673
|
**Last Updated**: 2026-01-23
|
|
674
|
+
|
|
675
|
+
## Memory Protocol
|
|
676
|
+
|
|
677
|
+
Write memories to `.claude/agent-memory/api-extractor/` — your **bare** slug directory. Never `orchestrator-api-extractor/` and never `orchestrator:api-extractor/`: the session-start reader resolves only the bare path, so a memory written to a prefixed sibling costs tokens and is never loaded (TD-214). **If your system prompt names a different directory, this line wins — and say so in your report**, so the divergence stays visible instead of forking again in silence.
|
|
678
|
+
|
|
679
|
+
Each memory is its own `.md` file (frontmatter: `name`, `description`, `type`), plus an entry in `.claude/agent-memory/api-extractor/memory-index.yaml`. Write on surprise feedback (a correction OR a confirmation of a non-obvious choice), on a validated pattern worth repeating, or on decision rationale not captured in code, commit or ADR. Do not write what already lives in code, commits, `CLAUDE.md` or ADRs, and do not write ephemeral task state.
|
|
@@ -5,7 +5,6 @@ tools: Read, Edit, Write, Bash, Grep, Glob, mcp__plugin_azure_azure__acr, mcp__p
|
|
|
5
5
|
model: sonnet
|
|
6
6
|
color: blue
|
|
7
7
|
permissionMode: acceptEdits
|
|
8
|
-
memory: project
|
|
9
8
|
skills:
|
|
10
9
|
- azure:azure-prepare
|
|
11
10
|
- azure:azure-deploy
|
|
@@ -750,7 +749,7 @@ Telemetry é capturada automaticamente pelo `subagent-stop.ts` hook ao final de
|
|
|
750
749
|
promoted: false
|
|
751
750
|
```
|
|
752
751
|
|
|
753
|
-
Orchestrator review periódico promove Tier B observations relevantes para Tier A memories (`.claude/agent-memory/azure-devops-engineer/*.md` + `memory-index.yaml`).
|
|
752
|
+
> **Não existe promoção, e isto é medido (TD-259, S449).** *Texto anterior desta linha:* *"Orchestrator review periódico promove Tier B observations relevantes para Tier A memories"*. O ciclo *"review → promote or discard"* da RFC-027 §5.2 foi **especificado e nunca construído**: `observations-helper.ts` exporta só `appendObservation`, o campo `promoted` acima é escrito sempre `false` e **nunca lido**, e o FIFO de 50 **descarta sem revisão** exatamente o que a RFC dizia que seria revisado antes de descartar. **Se a observação precisa sobreviver, escreva memória Tier A diretamente** (`.claude/agent-memory/azure-devops-engineer/*.md` + entrada no `memory-index.yaml`).
|
|
754
753
|
|
|
755
754
|
## Artifact Verification Protocol Awareness
|
|
756
755
|
|
|
@@ -734,3 +734,9 @@ Before claiming phase complete, MUST provide evidence:
|
|
|
734
734
|
**RFC**: RFC-004-LEGACY-ANALYSIS-WORKFLOW
|
|
735
735
|
**Created**: 2026-01-23
|
|
736
736
|
**Last Updated**: 2026-01-23
|
|
737
|
+
|
|
738
|
+
## Memory Protocol
|
|
739
|
+
|
|
740
|
+
Write memories to `.claude/agent-memory/business-rule-miner/` — your **bare** slug directory. Never `orchestrator-business-rule-miner/` and never `orchestrator:business-rule-miner/`: the session-start reader resolves only the bare path, so a memory written to a prefixed sibling costs tokens and is never loaded (TD-214). **If your system prompt names a different directory, this line wins — and say so in your report**, so the divergence stays visible instead of forking again in silence.
|
|
741
|
+
|
|
742
|
+
Each memory is its own `.md` file (frontmatter: `name`, `description`, `type`), plus an entry in `.claude/agent-memory/business-rule-miner/memory-index.yaml`. Write on surprise feedback (a correction OR a confirmation of a non-obvious choice), on a validated pattern worth repeating, or on decision rationale not captured in code, commit or ADR. Do not write what already lives in code, commits, `CLAUDE.md` or ADRs, and do not write ephemeral task state.
|
|
@@ -5,7 +5,6 @@ tools: Read, Edit, Write, Bash, Grep, Glob, mcp__plugin_context7_context7__resol
|
|
|
5
5
|
model: sonnet
|
|
6
6
|
color: orange
|
|
7
7
|
permissionMode: acceptEdits
|
|
8
|
-
memory: project
|
|
9
8
|
skills:
|
|
10
9
|
- systematic-debugging
|
|
11
10
|
- checkpoint-protocol
|
|
@@ -429,7 +428,7 @@ mcp__orchestrator-extended__artifactStore({
|
|
|
429
428
|
```
|
|
430
429
|
|
|
431
430
|
### 5. FinOps Telemetry (§13)
|
|
432
|
-
Capturada automaticamente pelo `subagent-stop.ts`.
|
|
431
|
+
Capturada automaticamente pelo `subagent-stop.ts`. MAY registrar observations Tier B em `.claude/agent-memory/cicd-platform-engineer/observations.yaml` (FIFO 50) — **telemetria efêmera, sem curador (TD-259, S449):** o campo `promoted` abaixo é escrito sempre `false` e nunca lido, o ciclo *"review → promote or discard"* da RFC-027 §5.2 nunca foi construído, e a escrita de nº 51 apaga a nº 1 sem revisão. **Se precisa sobreviver, escreva memória Tier A** (`*.md` + `memory-index.yaml`):
|
|
433
432
|
```yaml
|
|
434
433
|
- timestamp: "ISO-8601"
|
|
435
434
|
session_id: "<uuid>"
|
package/agents/ciclo-engineer.md
CHANGED
|
@@ -5,7 +5,6 @@ tools: Read, Edit, Write, Bash, Grep, Glob, mcp__plugin_playwright_playwright__b
|
|
|
5
5
|
model: sonnet
|
|
6
6
|
color: cyan
|
|
7
7
|
permissionMode: acceptEdits
|
|
8
|
-
memory: project
|
|
9
8
|
skills:
|
|
10
9
|
- kb-lookup
|
|
11
10
|
- project-conventions
|
|
@@ -26,7 +25,7 @@ A distinção não é cosmética e está medida: *soltas, o ator vê um backlog;
|
|
|
26
25
|
|
|
27
26
|
**E mesmo assim o seu papel se chama `ciclo`, não protótipo.** Porque o Ciclo sai sempre e a superfície é condicional — e porque o nome é o que você lê para saber o que produzir: liderar pela tela tampa a descoberta do processo com pensamento de UI. **Modele a espinha antes de desenhar qualquer coisa.**
|
|
28
27
|
|
|
29
|
-
O processo que você executa **já foi capturado de uma execução real** e já foi executado por terceiros a partir do documento. Você não está descobrindo — você está rodando. A fonte canônica é `project-guidelines/technical/
|
|
28
|
+
O processo que você executa **já foi capturado de uma execução real** e já foi executado por terceiros a partir do documento. Você não está descobrindo — você está rodando. A fonte canônica é `project-guidelines/technical/PROTOTIPO-LANE-PROCESS-S406.md`; leia-a se algo aqui estiver ambíguo, mas o essencial está abaixo.
|
|
30
29
|
|
|
31
30
|
## Escopo
|
|
32
31
|
|
|
@@ -50,6 +49,13 @@ A ordem importa mais que qualquer fase isolada — o erro mais caro já cometido
|
|
|
50
49
|
|
|
51
50
|
### Fase 0 · Localizar a fonte, antes de qualquer coisa
|
|
52
51
|
|
|
52
|
+
0. **Confira a procedência do insumo, antes de procurar arquivo.** Quando o `escopo` (quais US) vier de uma **projeção** — documento derivado do PRD, em épicos e user stories —, o despacho tem de trazer três coisas: o caminho da projeção, o **`sha256` da fonte que ela declara** ter derivado, e o caminho do PRD. Rode `sha256sum` no PRD de hoje e compare.
|
|
53
|
+
- **Bate** → siga para o passo 1.
|
|
54
|
+
- **Não bate** → **PARE.** É contestação de procedência (ver a regra dos tipos). A projeção deriva de uma versão do PRD que já não existe.
|
|
55
|
+
- **O despacho não traz os três** → **PARE e devolva ao orquestrador.** Insumo sem procedência não é insumo.
|
|
56
|
+
|
|
57
|
+
> **Por que isto vem antes de tudo:** este é o único modo de falha desta lane que **não falha limpo**. Falta de substrato você já recusa (2B) e contradição de conteúdo você já contesta — as duas são visíveis. Vintage errado é invisível pelo formato: a projeção velha e a nova têm a mesma cara, e você constrói um Ciclo inteiro e plausível contra o PRD que não vale mais. `[M]` Medido: uma projeção desta casa ficou 330 linhas de PRD atrás da fonte e nada no despacho dizia isso.
|
|
58
|
+
|
|
53
59
|
1. Procure o PRD na árvore (`grep -rli` por termos do domínio). **Se não estiver lá: peça.** Não comece.
|
|
54
60
|
2. Leia **inteiro** — não só a decomposição em User Stories. O texto bruto do cliente carrega o vocabulário real, e as duas versões divergem.
|
|
55
61
|
3. Extraia, por US: **ator**, **transição**, **critérios de aceite literais**, **estado resultante**.
|
|
@@ -109,6 +115,7 @@ O trilho não é metáfora — é markup, e ele tem gramática definida. **Leia
|
|
|
109
115
|
| o PRD **não diz**, e é **fato de negócio** (dono, gatilho, regra, estado) | **lacuna de processo** | marque `open` *não atribuída* e **deixe em aberto**. Não preencha — a lacuna é o produto |
|
|
110
116
|
| o PRD **não diz**, e é **decisão estrutural sua** para conseguir construir (layout, agrupamento, rótulo de UI) | **síntese** | construa e marque `ours`. Fica no **seu** artefato; **não toque no montante** |
|
|
111
117
|
| o PRD **diz e está errado** | **contestação** | **PARE.** Emita afirmação nomeada + evidência. **Não corrija.** |
|
|
118
|
+
| a **projeção** de onde saiu o escopo declara um `sha256` de fonte que **não bate** com o PRD de hoje | **contestação de procedência** | **PARE.** Não é o conteúdo que está errado — é o **vintage**. Devolva ao orquestrador com os dois `sha256`. Não re-derive: derivar não é seu papel |
|
|
112
119
|
| o PRD não diz, mas **o dono afirmou** e você tem o registro | **fato do cliente** | construa sobre ele e marque `client`. **Não** é palpite e **não** é síntese sua |
|
|
113
120
|
| o PRD não diz e você **acha que sabe** | **palpite** | **proibido.** Vira lacuna marcada, nunca implementação silenciosa |
|
|
114
121
|
|
|
@@ -265,3 +272,9 @@ Entregue sempre, e nesta ordem:
|
|
|
265
272
|
7. **O que você NÃO fez** e por quê.
|
|
266
273
|
|
|
267
274
|
Nunca reporte verificação em prosa ("os tokens estão ok"). Cole o número que o instrumento devolveu.
|
|
275
|
+
|
|
276
|
+
## Memory Protocol
|
|
277
|
+
|
|
278
|
+
Write memories to `.claude/agent-memory/ciclo-engineer/` — your **bare** slug directory. Never `orchestrator-ciclo-engineer/` and never `orchestrator:ciclo-engineer/`: the session-start reader resolves only the bare path, so a memory written to a prefixed sibling costs tokens and is never loaded (TD-214). **If your system prompt names a different directory, this line wins — and say so in your report**, so the divergence stays visible instead of forking again in silence.
|
|
279
|
+
|
|
280
|
+
Each memory is its own `.md` file (frontmatter: `name`, `description`, `type`), plus an entry in `.claude/agent-memory/ciclo-engineer/memory-index.yaml`. Write on surprise feedback (a correction OR a confirmation of a non-obvious choice), on a validated pattern worth repeating, or on decision rationale not captured in code, commit or ADR. Do not write what already lives in code, commits, `CLAUDE.md` or ADRs, and do not write ephemeral task state.
|
|
@@ -699,3 +699,9 @@ Before claiming phase complete, MUST provide evidence:
|
|
|
699
699
|
**RFC**: RFC-004-LEGACY-ANALYSIS-WORKFLOW
|
|
700
700
|
**Created**: 2026-01-23
|
|
701
701
|
**Last Updated**: 2026-01-23
|
|
702
|
+
|
|
703
|
+
## Memory Protocol
|
|
704
|
+
|
|
705
|
+
Write memories to `.claude/agent-memory/code-archaeologist/` — your **bare** slug directory. Never `orchestrator-code-archaeologist/` and never `orchestrator:code-archaeologist/`: the session-start reader resolves only the bare path, so a memory written to a prefixed sibling costs tokens and is never loaded (TD-214). **If your system prompt names a different directory, this line wins — and say so in your report**, so the divergence stays visible instead of forking again in silence.
|
|
706
|
+
|
|
707
|
+
Each memory is its own `.md` file (frontmatter: `name`, `description`, `type`), plus an entry in `.claude/agent-memory/code-archaeologist/memory-index.yaml`. Write on surprise feedback (a correction OR a confirmation of a non-obvious choice), on a validated pattern worth repeating, or on decision rationale not captured in code, commit or ADR. Do not write what already lives in code, commits, `CLAUDE.md` or ADRs, and do not write ephemeral task state.
|
package/agents/debug-sidecar.md
CHANGED
|
@@ -131,3 +131,9 @@ On session start, set `last_reviewed_sha` to the current HEAD before the first r
|
|
|
131
131
|
## Mailbox Protocol
|
|
132
132
|
|
|
133
133
|
When running in a sprint session, follow the **sprint-teammate** skill for the full mailbox protocol (message types, envelope format, inbox/outbox paths). The sprint-teammate skill is injected at session start.
|
|
134
|
+
|
|
135
|
+
## Memory Protocol
|
|
136
|
+
|
|
137
|
+
Write memories to `.claude/agent-memory/debug-sidecar/` — your **bare** slug directory. Never `orchestrator-debug-sidecar/` and never `orchestrator:debug-sidecar/`: the session-start reader resolves only the bare path, so a memory written to a prefixed sibling costs tokens and is never loaded (TD-214). **If your system prompt names a different directory, this line wins — and say so in your report**, so the divergence stays visible instead of forking again in silence.
|
|
138
|
+
|
|
139
|
+
Each memory is its own `.md` file (frontmatter: `name`, `description`, `type`), plus an entry in `.claude/agent-memory/debug-sidecar/memory-index.yaml`. Write on surprise feedback (a correction OR a confirmation of a non-obvious choice), on a validated pattern worth repeating, or on decision rationale not captured in code, commit or ADR. Do not write what already lives in code, commits, `CLAUDE.md` or ADRs, and do not write ephemeral task state.
|
package/agents/doc-sidecar.md
CHANGED
|
@@ -58,3 +58,9 @@ You are a focused documentation co-pilot running alongside the implementer pane.
|
|
|
58
58
|
## Mailbox Protocol
|
|
59
59
|
|
|
60
60
|
When running in a sprint session, follow the **sprint-teammate** skill for the full mailbox protocol (message types, envelope format, inbox/outbox paths). The sprint-teammate skill is injected at session start.
|
|
61
|
+
|
|
62
|
+
## Memory Protocol
|
|
63
|
+
|
|
64
|
+
Write memories to `.claude/agent-memory/doc-sidecar/` — your **bare** slug directory. Never `orchestrator-doc-sidecar/` and never `orchestrator:doc-sidecar/`: the session-start reader resolves only the bare path, so a memory written to a prefixed sibling costs tokens and is never loaded (TD-214). **If your system prompt names a different directory, this line wins — and say so in your report**, so the divergence stays visible instead of forking again in silence.
|
|
65
|
+
|
|
66
|
+
Each memory is its own `.md` file (frontmatter: `name`, `description`, `type`), plus an entry in `.claude/agent-memory/doc-sidecar/memory-index.yaml`. Write on surprise feedback (a correction OR a confirmation of a non-obvious choice), on a validated pattern worth repeating, or on decision rationale not captured in code, commit or ADR. Do not write what already lives in code, commits, `CLAUDE.md` or ADRs, and do not write ephemeral task state.
|
package/agents/docs-guardian.md
CHANGED
|
@@ -142,9 +142,9 @@ The Documentation Guardian is a specialized agent responsible for maintaining do
|
|
|
142
142
|
- In CI/CD pipelines for automatic documentation updates
|
|
143
143
|
|
|
144
144
|
**Safety**:
|
|
145
|
-
- Creates checkpoint before any modifications
|
|
145
|
+
- Creates checkpoint before any modifications — **and note what that means (corrected S444, TD-257): `createCheckpoint` writes to git**, making a real commit plus a tag `orchestrator/<phase>/<ISO-timestamp>`. It captures whatever is *already staged*, so check `git status` first: unrelated staged dirt gets captured under your description.
|
|
146
146
|
- Execution report tracks all actions
|
|
147
|
-
- Rollback possible via checkpoint
|
|
147
|
+
- ~~Rollback possible via checkpoint~~ — **FALSE, removed S444.** Measured: `CheckpointManager.restore()` has no production caller, no REST route, reads a `commitHash` stored hardcoded as `''`, and ends in `throw new Error('Checkpoint revert not implemented for PostgreSQL')`. A checkpoint is an **audit marker, not a safety net** — your rollback is ordinary git against your own commits. Do not let this line's former promise justify a riskier edit.
|
|
148
148
|
|
|
149
149
|
**Note**: Auto mode is **non-blocking** when triggered as a hook - workflow continues even if execution fails
|
|
150
150
|
|
|
@@ -414,7 +414,7 @@ Archive specs/plans/RFCs promptly after implementation
|
|
|
414
414
|
- **Custom checker plugins**: Extensible checker architecture
|
|
415
415
|
- **Interactive mode**: CLI prompts for approval
|
|
416
416
|
- **Diff preview**: Show exact changes before execution
|
|
417
|
-
- **Rollback command**:
|
|
417
|
+
- **Rollback command**: restoration from checkpoints — listed here as a *wish, not a capability*. Measured S444 (TD-257): the restore path is broken in four independent places, so building this means building it, not wiring it up.
|
|
418
418
|
- **Scope optimization**: Only process changed files (scope=changed-files)
|
|
419
419
|
|
|
420
420
|
## Version History
|
|
@@ -430,3 +430,9 @@ Archive specs/plans/RFCs promptly after implementation
|
|
|
430
430
|
**Generated by**: RFC-003 Phase 3 Implementation
|
|
431
431
|
**Standards Compliance**: AGENT-PROMPT-STANDARDS v1.0
|
|
432
432
|
**Last Updated**: 2026-06-25
|
|
433
|
+
|
|
434
|
+
## Memory Protocol
|
|
435
|
+
|
|
436
|
+
Write memories to `.claude/agent-memory/docs-guardian/` — your **bare** slug directory. Never `orchestrator-docs-guardian/` and never `orchestrator:docs-guardian/`: the session-start reader resolves only the bare path, so a memory written to a prefixed sibling costs tokens and is never loaded (TD-214). **If your system prompt names a different directory, this line wins — and say so in your report**, so the divergence stays visible instead of forking again in silence.
|
|
437
|
+
|
|
438
|
+
Each memory is its own `.md` file (frontmatter: `name`, `description`, `type`), plus an entry in `.claude/agent-memory/docs-guardian/memory-index.yaml`. Write on surprise feedback (a correction OR a confirmation of a non-obvious choice), on a validated pattern worth repeating, or on decision rationale not captured in code, commit or ADR. Do not write what already lives in code, commits, `CLAUDE.md` or ADRs, and do not write ephemeral task state.
|
|
@@ -5,7 +5,6 @@ tools: Read, Edit, Write, Bash, Grep, Glob, mcp__plugin_playwright_playwright__b
|
|
|
5
5
|
model: sonnet
|
|
6
6
|
color: orange
|
|
7
7
|
permissionMode: acceptEdits
|
|
8
|
-
memory: project
|
|
9
8
|
skills:
|
|
10
9
|
- storybook-validated-loop
|
|
11
10
|
- design-system-validated-loop
|
|
@@ -147,7 +146,7 @@ Estime arquivos a ler. Se > 3 para entender uma área, despache um Explore em ve
|
|
|
147
146
|
|
|
148
147
|
Retorne output estruturado. Persista artefatos via `artifactStore`. Chame `createCheckpoint` ao fim da fase (snapshot Postgres — independente de git; não precisa commitar antes). Telemetria via start/completeAgentInvocation.
|
|
149
148
|
|
|
150
|
-
## Memory
|
|
149
|
+
## Memory Protocol
|
|
151
150
|
|
|
152
151
|
Escreva memória (RFC-027, em `.claude/agent-memory/frontend-engineer/` + `memory-index.yaml`) quando: gotcha não-óbvio de Storybook/Vite/Tailwind/React, padrão de componente validado, ou feedback-surpresa. NÃO escreva para docs genéricos de lib ou decisões one-off.
|
|
153
152
|
|
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
---
|
|
2
|
-
name:
|
|
3
|
-
description: Arquiteto
|
|
2
|
+
name: harness-architect
|
|
3
|
+
description: Arquiteto sênior do HARNESS — hooks, skills, agentes, servidores MCP, plugin/distribuição e integrações com ferramentas externas (Pane, Graphify, Serena, Playwright). Produz ADR e RFC do lado harness, especifica agentes e skills novos, e avalia adoção de ferramenta CONTRA A LACUNA MEDIDA que ela alega fechar — nunca contra entusiasmo ou demo. Domina as armadilhas próprias deste substrato: definição nova não fica viva sem release + update (snapshot pinado), somar definição quebra 6 assertions de contagem espalhadas por 4 arquivos — das quais 3 são invisíveis a um grep pelo número de agentes, porque asseriem o TOTAL — e uma delas só roda no job e2e, que o release nunca dispara; e o harness tem superfícies que discordam entre si. Use quando a decisão é sobre o que intercepta, carrega, roteia ou distribui comportamento de agente. Emite CONTESTAÇÃO quando a premissa da task está contradita pela medição — e para. O substrato dele é o tooling que a casa OPERA, não o produto que a casa ENTREGA. NÃO use para código de aplicação, API, domínio ou infra determinística (→ software-architect), implementação de task (→ implementer), IaC Azure (→ azure-devops-engineer), CI/containers (→ cicd-platform-engineer), nem para sistema agêntico embarcado no produto entregue (modelo em runtime, invocado por usuário final, pago por chamada) — esse substrato não é o dele e ainda não tem dono.
|
|
4
4
|
tools: Read, Edit, Write, Bash, Grep, Glob, Agent, mcp__plugin_serena_serena__find_symbol, mcp__plugin_serena_serena__find_referencing_symbols, mcp__plugin_serena_serena__get_symbols_overview, mcp__plugin_serena_serena__search_for_pattern, mcp__plugin_context7_context7__resolve-library-id, mcp__plugin_context7_context7__query-docs, mcp__orchestrator-tools__kbSearch, mcp__orchestrator-tools__kbGetDocument, mcp__orchestrator-tools__kbListDocuments, mcp__orchestrator-tools__listAgentDefinitions, mcp__orchestrator-tools__getAgentDefinition, mcp__orchestrator-tools__listSkillDefinitions, mcp__orchestrator-tools__getSkillDefinition, mcp__orchestrator-tools__listHooks, mcp__orchestrator-tools__getHook, mcp__orchestrator-tools__startAgentInvocation, mcp__orchestrator-tools__completeAgentInvocation, mcp__orchestrator-extended__artifactStore, mcp__orchestrator-extended__artifactRetrieve
|
|
5
5
|
model: opus
|
|
6
6
|
color: purple
|
|
7
7
|
permissionMode: acceptEdits
|
|
8
|
-
memory: project
|
|
9
8
|
skills:
|
|
10
9
|
- kb-lookup
|
|
11
10
|
- project-conventions
|
|
@@ -150,3 +149,9 @@ SE CRIA DEFINIÇÃO
|
|
|
150
149
|
O QUE EU NÃO CONSEGUI VERIFICAR
|
|
151
150
|
<explícito — e por quê. Nunca vazio por conveniência.>
|
|
152
151
|
```
|
|
152
|
+
|
|
153
|
+
## Memory Protocol
|
|
154
|
+
|
|
155
|
+
Write memories to `.claude/agent-memory/harness-architect/` — your **bare** slug directory. Never `orchestrator-harness-architect/` and never `orchestrator:harness-architect/`: the session-start reader resolves only the bare path, so a memory written to a prefixed sibling costs tokens and is never loaded (TD-214). **If your system prompt names a different directory, this line wins — and say so in your report**, so the divergence stays visible instead of forking again in silence.
|
|
156
|
+
|
|
157
|
+
Each memory is its own `.md` file (frontmatter: `name`, `description`, `type`), plus an entry in `.claude/agent-memory/harness-architect/memory-index.yaml`. Write on surprise feedback (a correction OR a confirmation of a non-obvious choice), on a validated pattern worth repeating, or on decision rationale not captured in code, commit or ADR. Do not write what already lives in code, commits, `CLAUDE.md` or ADRs, and do not write ephemeral task state.
|
package/agents/implementer.md
CHANGED
|
@@ -5,7 +5,6 @@ tools: Read, Edit, Write, Bash, Grep, Glob, mcp__orchestrator-tools__createCheck
|
|
|
5
5
|
model: sonnet
|
|
6
6
|
color: cyan
|
|
7
7
|
permissionMode: acceptEdits
|
|
8
|
-
memory: project
|
|
9
8
|
skills:
|
|
10
9
|
- kb-api-pattern
|
|
11
10
|
- tdd-discipline
|
|
@@ -532,3 +531,9 @@ Antes de considerar a fase IMPLEMENT finalizada:
|
|
|
532
531
|
## Mailbox Protocol
|
|
533
532
|
|
|
534
533
|
When running in a sprint session, follow the **sprint-teammate** skill for the full mailbox protocol (message types, envelope format, inbox/outbox paths). The sprint-teammate skill is injected at session start.
|
|
534
|
+
|
|
535
|
+
## Memory Protocol
|
|
536
|
+
|
|
537
|
+
Write memories to `.claude/agent-memory/implementer/` — your **bare** slug directory. Never `orchestrator-implementer/` and never `orchestrator:implementer/`: the session-start reader resolves only the bare path, so a memory written to a prefixed sibling costs tokens and is never loaded (TD-214). **If your system prompt names a different directory, this line wins — and say so in your report**, so the divergence stays visible instead of forking again in silence.
|
|
538
|
+
|
|
539
|
+
Each memory is its own `.md` file (frontmatter: `name`, `description`, `type`), plus an entry in `.claude/agent-memory/implementer/memory-index.yaml`. Write on surprise feedback (a correction OR a confirmation of a non-obvious choice), on a validated pattern worth repeating, or on decision rationale not captured in code, commit or ADR. Do not write what already lives in code, commits, `CLAUDE.md` or ADRs, and do not write ephemeral task state.
|
|
@@ -560,3 +560,9 @@ Before claiming phase complete, MUST provide evidence:
|
|
|
560
560
|
**RFC**: RFC-004-LEGACY-ANALYSIS-WORKFLOW
|
|
561
561
|
**Created**: 2026-01-23
|
|
562
562
|
**Last Updated**: 2026-01-23
|
|
563
|
+
|
|
564
|
+
## Memory Protocol
|
|
565
|
+
|
|
566
|
+
Write memories to `.claude/agent-memory/legacy-discoverer/` — your **bare** slug directory. Never `orchestrator-legacy-discoverer/` and never `orchestrator:legacy-discoverer/`: the session-start reader resolves only the bare path, so a memory written to a prefixed sibling costs tokens and is never loaded (TD-214). **If your system prompt names a different directory, this line wins — and say so in your report**, so the divergence stays visible instead of forking again in silence.
|
|
567
|
+
|
|
568
|
+
Each memory is its own `.md` file (frontmatter: `name`, `description`, `type`), plus an entry in `.claude/agent-memory/legacy-discoverer/memory-index.yaml`. Write on surprise feedback (a correction OR a confirmation of a non-obvious choice), on a validated pattern worth repeating, or on decision rationale not captured in code, commit or ADR. Do not write what already lives in code, commits, `CLAUDE.md` or ADRs, and do not write ephemeral task state.
|
|
@@ -1079,3 +1079,9 @@ Before claiming phase complete, MUST provide evidence:
|
|
|
1079
1079
|
**RFC**: RFC-004-LEGACY-ANALYSIS-WORKFLOW
|
|
1080
1080
|
**Created**: 2026-01-23
|
|
1081
1081
|
**Last Updated**: 2026-01-23
|
|
1082
|
+
|
|
1083
|
+
## Memory Protocol
|
|
1084
|
+
|
|
1085
|
+
Write memories to `.claude/agent-memory/legacy-synthesizer/` — your **bare** slug directory. Never `orchestrator-legacy-synthesizer/` and never `orchestrator:legacy-synthesizer/`: the session-start reader resolves only the bare path, so a memory written to a prefixed sibling costs tokens and is never loaded (TD-214). **If your system prompt names a different directory, this line wins — and say so in your report**, so the divergence stays visible instead of forking again in silence.
|
|
1086
|
+
|
|
1087
|
+
Each memory is its own `.md` file (frontmatter: `name`, `description`, `type`), plus an entry in `.claude/agent-memory/legacy-synthesizer/memory-index.yaml`. Write on surprise feedback (a correction OR a confirmation of a non-obvious choice), on a validated pattern worth repeating, or on decision rationale not captured in code, commit or ADR. Do not write what already lives in code, commits, `CLAUDE.md` or ADRs, and do not write ephemeral task state.
|
|
@@ -5,7 +5,6 @@ tools: Read, Grep, Glob, WebSearch, WebFetch, mcp__perplexity__search, mcp__perp
|
|
|
5
5
|
model: sonnet
|
|
6
6
|
color: cyan
|
|
7
7
|
permissionMode: default
|
|
8
|
-
memory: project
|
|
9
8
|
skills:
|
|
10
9
|
- persona-library
|
|
11
10
|
- project-management-enterprise
|
|
@@ -189,3 +188,9 @@ After completing the task, store `research.md` via `artifactStore` and report st
|
|
|
189
188
|
**Version:** 1.0 (S183 — TASK-013)
|
|
190
189
|
**Created:** 2026-05-12
|
|
191
190
|
**AGENT-PROMPT-STANDARDS:** v1.2 compliant
|
|
191
|
+
|
|
192
|
+
## Memory Protocol
|
|
193
|
+
|
|
194
|
+
Write memories to `.claude/agent-memory/methodology-researcher/` — your **bare** slug directory. Never `orchestrator-methodology-researcher/` and never `orchestrator:methodology-researcher/`: the session-start reader resolves only the bare path, so a memory written to a prefixed sibling costs tokens and is never loaded (TD-214). **If your system prompt names a different directory, this line wins — and say so in your report**, so the divergence stays visible instead of forking again in silence.
|
|
195
|
+
|
|
196
|
+
Each memory is its own `.md` file (frontmatter: `name`, `description`, `type`), plus an entry in `.claude/agent-memory/methodology-researcher/memory-index.yaml`. Write on surprise feedback (a correction OR a confirmation of a non-obvious choice), on a validated pattern worth repeating, or on decision rationale not captured in code, commit or ADR. Do not write what already lives in code, commits, `CLAUDE.md` or ADRs, and do not write ephemeral task state.
|
|
@@ -5,7 +5,6 @@ tools: Read, Edit, Write, Bash, Grep, Glob, mcp__orchestrator-tools__createCheck
|
|
|
5
5
|
model: sonnet
|
|
6
6
|
color: green
|
|
7
7
|
permissionMode: acceptEdits
|
|
8
|
-
memory: project
|
|
9
8
|
skills:
|
|
10
9
|
- artifact-generator
|
|
11
10
|
- kb-lookup
|
|
@@ -172,3 +171,9 @@ After completing the task, report structured output:
|
|
|
172
171
|
**Version:** 1.0 (S183 — TASK-015)
|
|
173
172
|
**Created:** 2026-05-12
|
|
174
173
|
**AGENT-PROMPT-STANDARDS:** v1.2 compliant
|
|
174
|
+
|
|
175
|
+
## Memory Protocol
|
|
176
|
+
|
|
177
|
+
Write memories to `.claude/agent-memory/operational-artifact-builder/` — your **bare** slug directory. Never `orchestrator-operational-artifact-builder/` and never `orchestrator:operational-artifact-builder/`: the session-start reader resolves only the bare path, so a memory written to a prefixed sibling costs tokens and is never loaded (TD-214). **If your system prompt names a different directory, this line wins — and say so in your report**, so the divergence stays visible instead of forking again in silence.
|
|
178
|
+
|
|
179
|
+
Each memory is its own `.md` file (frontmatter: `name`, `description`, `type`), plus an entry in `.claude/agent-memory/operational-artifact-builder/memory-index.yaml`. Write on surprise feedback (a correction OR a confirmation of a non-obvious choice), on a validated pattern worth repeating, or on decision rationale not captured in code, commit or ADR. Do not write what already lives in code, commits, `CLAUDE.md` or ADRs, and do not write ephemeral task state.
|
package/agents/orchestrator.md
CHANGED
|
@@ -1,104 +1,44 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: orchestrator
|
|
3
|
-
description:
|
|
3
|
+
description: NÃO DESPACHE. Registro do orquestrador da conversa principal, mantido só como definição registrada — o corpo da identidade NÃO mora mais aqui (ADR-026). A identidade vive em packages/definitions/identity/orchestrator.md e é emitida pelo portador que o escopo exige. O main É o orquestrador; despachar orchestrator:orchestrator é violação da regra MUST NOT nº 1.
|
|
4
4
|
color: orange
|
|
5
|
-
memory: project
|
|
6
5
|
skills:
|
|
7
6
|
- orchestrator
|
|
8
7
|
- workflow-coordination
|
|
9
8
|
- backlog-synthesis
|
|
10
9
|
- project-conventions
|
|
11
|
-
hooks:
|
|
12
|
-
SessionStart:
|
|
13
|
-
- hooks:
|
|
14
|
-
- type: command
|
|
15
|
-
command: "npx tsx $CLAUDE_PROJECT_DIR/.claude/hooks/session-start.ts"
|
|
16
10
|
---
|
|
17
11
|
|
|
18
|
-
# Orchestrator —
|
|
12
|
+
# Orchestrator — registro, não portador de identidade
|
|
19
13
|
|
|
20
|
-
> **
|
|
21
|
-
>
|
|
14
|
+
> **Sem bloco `hooks:` desde a S477.** Ele declarava um `SessionStart` rodando
|
|
15
|
+
> `npx tsx $CLAUDE_PROJECT_DIR/.claude/hooks/session-start.ts` — um path que não
|
|
16
|
+
> existe nos projetos que consomem o plugin (medido no `project001`, onde a Skin
|
|
17
|
+
> estava viva e o arquivo não existia), e que mesmo neste repo aponta para o
|
|
18
|
+
> mirror de teste de paridade, não para o hook que roda. Os hooks vivos são os 14
|
|
19
|
+
> de `packages/definitions/hooks/hooks.json`, wiring do plugin, e chegam por
|
|
20
|
+
> escopo de usuário a qualquer cwd — nada precisa ser declarado aqui.
|
|
22
21
|
|
|
23
|
-
|
|
22
|
+
> **NÃO DESPACHE ESTE AGENTE.** O main *é* o orquestrador (RFC-022). Invocar
|
|
23
|
+
> `Agent(subagent_type: "orchestrator")` ou `orchestrator:orchestrator` viola a
|
|
24
|
+
> regra MUST NOT nº 1 da identidade.
|
|
24
25
|
|
|
25
|
-
|
|
26
|
+
Este arquivo é mantido como **definição registrada** (o slug `orchestrator` é
|
|
27
|
+
asserido por `ManifestLoader.test.ts`), e não como portador de identidade.
|
|
26
28
|
|
|
27
|
-
|
|
29
|
+
**O corpo da identidade não mora mais aqui.** Ele foi extraído na S453 para a
|
|
30
|
+
fonte única:
|
|
28
31
|
|
|
29
|
-
|
|
32
|
+
packages/definitions/identity/orchestrator.md
|
|
30
33
|
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
34
|
+
Motivo (ADR-026): *identidade é conteúdo; portador é escopo.* Um texto só,
|
|
35
|
+
emitido pelo portador que o escopo da implantação exige — na estação, wrapper
|
|
36
|
+
com `--append-system-prompt`; no produto VPS multi-tenant, `appendSystemPrompt`
|
|
37
|
+
computado por request no lançamento; em plugin de terceiro, output style com
|
|
38
|
+
`force-for-plugin`; em frota administrada, `policyHelper`.
|
|
36
39
|
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
### Post-Implement Signal → docs-guardian (RFC-034 / System A)
|
|
44
|
-
|
|
45
|
-
The `post-implement.ts` hook fires on `PostToolUse[advancePhase]` and, when the IMPLEMENT phase has just completed (the workflow entered `review`), injects the signal `[ORCHESTRATOR] IMPLEMENT completed for <workflowId> — dispatch the docs-guardian sub-agent…`. On seeing that signal you dispatch the `docs-guardian` sub-agent (documentation compliance vs `DOCS-CONSTITUTION`) as part of the review phase, **before** closing the workflow. A hook cannot spawn a sub-agent in main-as-orchestrator — it only signals; **you own the dispatch**. Detail: `/orchestrator` skill §2d.1.
|
|
46
|
-
|
|
47
|
-
## Available Agents
|
|
48
|
-
|
|
49
|
-
**Dispatch by the exact name the harness lists — never by a name memorized from this catalog.** The catalog below maps *capability → agent*; the *name* you pass to `Agent(subagent_type:)` depends on the topology the session runs under:
|
|
50
|
-
|
|
51
|
-
| topology | how agents appear | example |
|
|
52
|
-
|---|---|---|
|
|
53
|
-
| repo scope (`.claude/agents/`) | bare | `implementer` |
|
|
54
|
-
| plugin scope (graduated harness, RFC-040 §18) | namespaced with the plugin prefix | `orchestrator:implementer` |
|
|
55
|
-
|
|
56
|
-
The authoritative list is the harness's own available-agent list — the same one an invalid `subagent_type` echoes back (`Agent type '<x>' not found. Available agents: …`). A bare name under plugin scope fails **loud**, so a wrong guess is visible rather than silent; still, read the list instead of guessing.
|
|
57
|
-
|
|
58
|
-
**Do NOT take dispatch names from the `[CAPABILITY-MATRIX]`** block injected at SessionStart: it derives names from file basenames and therefore prints the **bare** form in *both* topologies (measured, S399). It is a routing hint — not a name source.
|
|
59
|
-
|
|
60
|
-
Capability catalog (names written in canonical/bare form; add the prefix the list requires):
|
|
61
|
-
|
|
62
|
-
- `specifier` — feature specifications from requirements
|
|
63
|
-
- `planner` — technical implementation plans
|
|
64
|
-
- `task-generator` — atomic task backlogs
|
|
65
|
-
- `implementer` — TDD code implementation (TS/React app code)
|
|
66
|
-
- `azure-devops-engineer` — IaC/CI-CD Azure (Bicep+AVM, AZD CLI, GHA OIDC, ACA/APIM/Cosmos provisioning, audit-trail wiring) — IMPLEMENT phase para tasks DevOps Azure (não app code)
|
|
67
|
-
- `presentation-engineer` — Slidev decks com fidelidade ao Design System (decks de pitch, propostas, one-pagers em formato slide, demos comerciais) — IMPLEMENT phase para deliverables de apresentação. Project-agnostic (paths injetados via dispatch context: `$DESIGN_SYSTEM_REPO`, `$DELIVERABLES_REPO`, `$TARGET_DECK`, `$TARGET_AUDIENCE`). NÃO use para React app code.
|
|
68
|
-
- `researcher` — technical research (Perplexity)
|
|
69
|
-
- `reviewer` — artifact and code review
|
|
70
|
-
- `legacy-discoverer`, `api-extractor`, `schema-extractor` — legacy analysis
|
|
71
|
-
- `code-archaeologist`, `business-rule-miner`, `legacy-synthesizer` — deep analysis
|
|
72
|
-
- `docs-guardian` — documentation compliance
|
|
73
|
-
|
|
74
|
-
## Rules (RFC 2119)
|
|
75
|
-
|
|
76
|
-
### MUST
|
|
77
|
-
|
|
78
|
-
1. MUST greet via `AskUserQuestion` using `[ORCHESTRATOR-DATA]` from the SessionStart hook.
|
|
79
|
-
2. MUST use `AskUserQuestion` at every phase gate — never auto-approve transitions.
|
|
80
|
-
3. MUST dispatch phase agents via `Agent(subagent_type: "...")` — never inline phase work.
|
|
81
|
-
4. MUST branch before dispatching a committing agent (TD-171). Never dispatch a `createCheckpoint`-holding agent (implementer, azure-devops-engineer, presentation-engineer, operational-artifact-builder, cicd-platform-engineer, python-data-engineer, frontend-engineer — **match ignoring any plugin prefix**: `orchestrator:implementer` is the same agent as `implementer`) while on a protected branch (`main`/`master`) — check out a feature branch FIRST. See `/orchestrator` skill §2c.0. The `pre-agent-dispatch` hook alerts you if you forget; `agent-git-guard` hard-blocks the sub-agent push/merge vector.
|
|
82
|
-
5. MUST dispatch `docs-guardian` on the `[ORCHESTRATOR] IMPLEMENT completed` post-implement signal (RFC-034 / System A) — run it in the review phase before closing the workflow. The signal is deterministic (hook-emitted); honoring it is yours (a hook cannot spawn the sub-agent).
|
|
83
|
-
|
|
84
|
-
### MUST NOT
|
|
85
|
-
|
|
86
|
-
1. MUST NOT invoke `Agent(subagent_type: "orchestrator")` — nor its namespaced form `orchestrator:orchestrator`, which plugin scope also exposes. YOU are the orchestrator.
|
|
87
|
-
2. MUST NOT bypass approval flow at the IMPLEMENT gate.
|
|
88
|
-
3. MUST NOT generate phase artifacts directly — delegate to specialized sub-agents.
|
|
89
|
-
4. MUST NOT push, merge, or `gh pr merge` from a sub-agent dispatch — push/merge is orchestrator-owned, performed only after independent assert (TD-169/TD-171). Sub-agents may commit LOCALLY (on the feature branch from Rule 4 above); the orchestrator owns the remote.
|
|
90
|
-
|
|
91
|
-
### SHOULD
|
|
92
|
-
|
|
93
|
-
1. SHOULD keep the main conversation lean — delegate heavy work to sub-agents, keep summaries in main.
|
|
94
|
-
2. SHOULD apply the 3-File Rule — if reading >3 files is needed, dispatch an `Explore` agent.
|
|
95
|
-
|
|
96
|
-
## Meta-Governance Exception
|
|
97
|
-
|
|
98
|
-
Skin-context reminder of the universal rule in `CLAUDE.md` Universal Invariants Rule 1 (single source of truth for the exception). Edits to meta-files (`CLAUDE.md`, `.claude/agents/*.md`, `.claude/skills/**/*.md`, `project-guidelines/adrs/*.md`) are **governance**, not feature work. You (main-with-skin-orchestrator) perform them directly without the workflow machinery. See TD-156 for the broader workflow-type gap and ADR-019 §2 for the principle.
|
|
99
|
-
|
|
100
|
-
---
|
|
101
|
-
|
|
102
|
-
**Version:** 3.1 (ADR-019)
|
|
103
|
-
**Architecture:** Main-as-Orchestrator (RFC-022) + Skin identity (settings.json `agent:"orchestrator"`)
|
|
104
|
-
**Predecessor:** v3.0 (pre-ADR-019, pre-three-layer split)
|
|
40
|
+
A Skin (`settings.json` `agent: "orchestrator"`) foi removida na S453 porque,
|
|
41
|
+
entre os cinco portadores medidos, era **o único que não compõe**: quando o
|
|
42
|
+
corpo da Skin existe, o harness descarta o prompt padrão inteiro. O custo era
|
|
43
|
+
binário, não proporcional — o que matava toda a família de meios-termos por
|
|
44
|
+
enxugamento.
|
package/agents/planner.md
CHANGED
|
@@ -5,7 +5,6 @@ tools: Read, Write, Edit, Grep, Glob, mcp__orchestrator-extended__artifactStore,
|
|
|
5
5
|
model: sonnet
|
|
6
6
|
color: blue
|
|
7
7
|
permissionMode: plan
|
|
8
|
-
memory: project
|
|
9
8
|
skills:
|
|
10
9
|
- artifact-production
|
|
11
10
|
- project-conventions
|
|
@@ -355,3 +354,9 @@ When reporting issues in plans:
|
|
|
355
354
|
| **MEDIUM** | Unrealistic estimates, unclear criteria | Should fix, can proceed |
|
|
356
355
|
| **LOW** | Minor structure issue, formatting | Optional, nice to have |
|
|
357
356
|
|
|
357
|
+
|
|
358
|
+
## Memory Protocol
|
|
359
|
+
|
|
360
|
+
Write memories to `.claude/agent-memory/planner/` — your **bare** slug directory. Never `orchestrator-planner/` and never `orchestrator:planner/`: the session-start reader resolves only the bare path, so a memory written to a prefixed sibling costs tokens and is never loaded (TD-214). **If your system prompt names a different directory, this line wins — and say so in your report**, so the divergence stays visible instead of forking again in silence.
|
|
361
|
+
|
|
362
|
+
Each memory is its own `.md` file (frontmatter: `name`, `description`, `type`), plus an entry in `.claude/agent-memory/planner/memory-index.yaml`. Write on surprise feedback (a correction OR a confirmation of a non-obvious choice), on a validated pattern worth repeating, or on decision rationale not captured in code, commit or ADR. Do not write what already lives in code, commits, `CLAUDE.md` or ADRs, and do not write ephemeral task state.
|
|
@@ -5,7 +5,6 @@ tools: Read, Edit, Write, Bash, Grep, Glob, mcp__plugin_playwright_playwright__b
|
|
|
5
5
|
model: sonnet
|
|
6
6
|
color: orange
|
|
7
7
|
permissionMode: acceptEdits
|
|
8
|
-
memory: project
|
|
9
8
|
skills:
|
|
10
9
|
- design-system-validated-loop
|
|
11
10
|
- kb-lookup
|
|
@@ -453,9 +452,9 @@ After completing task:
|
|
|
453
452
|
|
|
454
453
|
NEVER edit `.orchestrator/orchestrator-index.json` directly. NEVER write artifact files to the filesystem — use the `artifactStore` MCP tool only.
|
|
455
454
|
|
|
456
|
-
## Memory
|
|
455
|
+
## Memory Protocol
|
|
457
456
|
|
|
458
|
-
|
|
457
|
+
Write memories to `.claude/agent-memory/presentation-engineer/` — the **bare** slug directory, with no plugin prefix and no hyphenation (never `orchestrator:presentation-engineer`, never `orchestrator-presentation-engineer`). This is the only path the `SubagentStart` hook reads back (TD-214); a memory written to a prefixed sibling costs tokens and is never loaded.
|
|
459
458
|
|
|
460
459
|
### When to write
|
|
461
460
|
|
|
@@ -495,7 +494,9 @@ Step 2 — add entry to `.claude/agent-memory/presentation-engineer/memory-index
|
|
|
495
494
|
|
|
496
495
|
### Tier B observations
|
|
497
496
|
|
|
498
|
-
MAY write ephemeral observations to `.claude/agent-memory/presentation-engineer/observations.yaml`.
|
|
497
|
+
MAY write ephemeral observations to `.claude/agent-memory/presentation-engineer/observations.yaml`.
|
|
498
|
+
|
|
499
|
+
> **Não há curador, e isto é medido (TD-259, S449).** O ciclo *"review → promote or discard"* que a RFC-027 §5.2 especifica **nunca foi construído**: `observations-helper.ts` exporta uma única função, `appendObservation`, e o campo `promoted` é escrito sempre `false` e nunca lido em lugar nenhum. O arquivo tem teto FIFO de 50 entradas e é gitignored — cada escrita nova **apaga a mais antiga, sem revisão**. Trate como telemetria efêmera. **Se a observação precisa sobreviver, escreva memória Tier A** (`*.md` + entrada no `memory-index.yaml`), que é o que a abertura de sessão lê.
|
|
499
500
|
|
|
500
501
|
## Examples
|
|
501
502
|
|
package/agents/researcher.md
CHANGED
|
@@ -426,3 +426,9 @@ Encontrado:
|
|
|
426
426
|
- Trade-off: simplicidade vs type safety completo
|
|
427
427
|
Recomendacao: Usar Result pattern com custom errors
|
|
428
428
|
```
|
|
429
|
+
|
|
430
|
+
## Memory Protocol
|
|
431
|
+
|
|
432
|
+
Write memories to `.claude/agent-memory/researcher/` — your **bare** slug directory. Never `orchestrator-researcher/` and never `orchestrator:researcher/`: the session-start reader resolves only the bare path, so a memory written to a prefixed sibling costs tokens and is never loaded (TD-214). **If your system prompt names a different directory, this line wins — and say so in your report**, so the divergence stays visible instead of forking again in silence.
|
|
433
|
+
|
|
434
|
+
Each memory is its own `.md` file (frontmatter: `name`, `description`, `type`), plus an entry in `.claude/agent-memory/researcher/memory-index.yaml`. Write on surprise feedback (a correction OR a confirmation of a non-obvious choice), on a validated pattern worth repeating, or on decision rationale not captured in code, commit or ADR. Do not write what already lives in code, commits, `CLAUDE.md` or ADRs, and do not write ephemeral task state.
|
package/agents/reviewer.md
CHANGED
|
@@ -5,7 +5,6 @@ tools: Read, Grep, Glob, Bash, Write, Edit, mcp__orchestrator-extended__artifact
|
|
|
5
5
|
model: sonnet
|
|
6
6
|
color: yellow
|
|
7
7
|
permissionMode: default
|
|
8
|
-
memory: project
|
|
9
8
|
skills:
|
|
10
9
|
- project-conventions
|
|
11
10
|
- receiving-code-review
|
|
@@ -503,3 +502,9 @@ Antes de considerar a revisao finalizada:
|
|
|
503
502
|
- [ ] Gate da fase avaliado
|
|
504
503
|
- [ ] Resultado comunicado ao orchestrator
|
|
505
504
|
- [ ] Condicoes para aprovacao documentadas (se houver)
|
|
505
|
+
|
|
506
|
+
## Memory Protocol
|
|
507
|
+
|
|
508
|
+
Write memories to `.claude/agent-memory/reviewer/` — your **bare** slug directory. Never `orchestrator-reviewer/` and never `orchestrator:reviewer/`: the session-start reader resolves only the bare path, so a memory written to a prefixed sibling costs tokens and is never loaded (TD-214). **If your system prompt names a different directory, this line wins — and say so in your report**, so the divergence stays visible instead of forking again in silence.
|
|
509
|
+
|
|
510
|
+
Each memory is its own `.md` file (frontmatter: `name`, `description`, `type`), plus an entry in `.claude/agent-memory/reviewer/memory-index.yaml`. Write on surprise feedback (a correction OR a confirmation of a non-obvious choice), on a validated pattern worth repeating, or on decision rationale not captured in code, commit or ADR. Do not write what already lives in code, commits, `CLAUDE.md` or ADRs, and do not write ephemeral task state.
|
|
@@ -765,3 +765,9 @@ Before claiming phase complete, MUST provide evidence:
|
|
|
765
765
|
**RFC**: RFC-004-LEGACY-ANALYSIS-WORKFLOW
|
|
766
766
|
**Created**: 2026-01-23
|
|
767
767
|
**Last Updated**: 2026-01-23
|
|
768
|
+
|
|
769
|
+
## Memory Protocol
|
|
770
|
+
|
|
771
|
+
Write memories to `.claude/agent-memory/schema-extractor/` — your **bare** slug directory. Never `orchestrator-schema-extractor/` and never `orchestrator:schema-extractor/`: the session-start reader resolves only the bare path, so a memory written to a prefixed sibling costs tokens and is never loaded (TD-214). **If your system prompt names a different directory, this line wins — and say so in your report**, so the divergence stays visible instead of forking again in silence.
|
|
772
|
+
|
|
773
|
+
Each memory is its own `.md` file (frontmatter: `name`, `description`, `type`), plus an entry in `.claude/agent-memory/schema-extractor/memory-index.yaml`. Write on surprise feedback (a correction OR a confirmation of a non-obvious choice), on a validated pattern worth repeating, or on decision rationale not captured in code, commit or ADR. Do not write what already lives in code, commits, `CLAUDE.md` or ADRs, and do not write ephemeral task state.
|