theforge-cli 0.2.5 → 0.3.0

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.
@@ -142,6 +142,54 @@ forge-cli install <dir> # fonte local: zero re
142
142
  negado sai como `FORGE-INSTALL-PERMISSION-DENIED` com o fallback.
143
143
  - Fonte local (`install <dir>`) não toca rede por definição.
144
144
 
145
+ ## 11. Integrações opcionais (pós-install)
146
+
147
+ Depois que uma instalação termina com sucesso, o forge-cli lista as
148
+ **integrações opcionais** declaradas para a(s) Forja(s) instalada(s) —
149
+ especialistas que compõem com ela (verificadores independentes, delegates
150
+ do orquestrador, fallbacks). Regras invioláveis:
151
+
152
+ - **Consentimento explícito.** Em terminal interativo a lista é um
153
+ checkbox (`Espaço` marca, `Enter` confirma) sem nada pré-marcado;
154
+ seleção vazia = nada instalado. `--yes`, `--json` e pipes nunca
155
+ presumem consentimento — a lista sai como nota informativa (ou no
156
+ campo `optional_integrations` do relatório JSON).
157
+ - **Nunca automático.** Nenhum fluxo instala uma Forja irmã como
158
+ dependência — composição é sempre opcional, nunca mandatória.
159
+ - **Detecção por evidência.** Antes de oferecer, cada integração é
160
+ classificada: `verified` (receipt com verify ok), `installed`
161
+ (receipt sem prova ou binário no PATH), `checkout` (clone presente),
162
+ `degraded` (receipt com verify falho ou fonte ausente) e `absent`.
163
+ O que já está saudável não é oferecido de novo.
164
+ - **Sem rota honesta.** Integração sem dist no PyPI (hoje:
165
+ `data-sentinel-forge`) aparece com a razão e o remédio correto
166
+ (`--method git` / método do repositório) — nunca é fingida instalável
167
+ nem instalada.
168
+
169
+ ```bash
170
+ forge-cli install the-forge # instala → oferece os delegates do orquestrador
171
+ forge-cli install the-forge --yes # instala → integrações saem como nota (nada extra entra)
172
+ forge-cli install the-forge --json # idem, no campo optional_integrations do documento
173
+ ```
174
+
175
+ ### Doctor — `installation.integrations.<forja>`
176
+
177
+ `forge doctor` ganha um check por Forja instalada que declara
178
+ integrações, cobrindo as dimensões exigidas pela lf-0031 em cada
179
+ especialista: instalação (state), capability (`derivável`/declarada),
180
+ versão (receipt), executable-health (verify do receipt), contract
181
+ (`forge.json` do checkout) e delegation-adapter (`the-forge`/`ausente`).
182
+
183
+ - `skip` — todas ausentes: opcionais, **nunca falham a Forja
184
+ principal** (e não entram no plano de `doctor --fix`);
185
+ - `pass` — ao menos uma presente e nenhuma degradada;
186
+ - `warn` (low) — alguma degradada (verify falho/fonte perdida);
187
+ reparo é `UNSUPPORTED` no heal — só diagnóstico.
188
+
189
+ Especialistas sem adapter the-forge (hoje `data-sentinel-forge`)
190
+ aparecem como `adapter=ausente`/`capability=não declarada` em evidência
191
+ — gap documentado, reportado, nunca transformado em falha.
192
+
145
193
  ## Ciclo de vida da fonte local
146
194
 
147
195
  | Operação | Comando | Comportamento |
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "theforge-cli",
3
- "version": "0.2.5",
3
+ "version": "0.3.0",
4
4
  "description": "CLI interativa para clonar e configurar o ecossistema Forge",
5
5
  "type": "module",
6
6
  "bin": {