* docs(#2775): align package-legitimacy docs to the ADR-0656 registry-API gate security-model.md, USER-GUIDE.md, ARCHITECTURE.md, COMMANDS.md, FEATURES.md, and gsd-planner.md's STRIDE template (+ ja-JP mirrors) described the pre-ADR-0656 design: slopcheck as the install-or-degrade gate, with unavailability degrading every package to [ASSUMED]. ADR-0656 inverted this months ago — registry-API verdicts (npm/PyPI/ crates.io) are the gate; slopcheck is an optional escalate-only adapter that no shipped configuration wires. Verified every replacement claim against src/package-legitimacy.cts (checkPackages, classifyPackage, lookupNpm/lookupPypi/lookupCrates) via Memtrace before writing it, so the corrected prose matches the live implementation rather than restating the ADR from memory. Restored docs/explanation/security-model.md:79-84 (and its ja-JP mirror) to original wording after an orthogonal spec review caught that an earlier draft had edited the "Why WebSearch packages are always [ASSUMED]" paragraph — inside the range issue #2775 explicitly named as correct and to leave alone. The ja-JP mirror was missing the closing clause present in the corrected English original ("its absence leaves registry-API verdicts intact rather than downgrading everything to [ASSUMED]") — added for parity. This completes the ja-JP mirror the issue's acceptance criteria named explicitly. zh-CN/ko-KR/pt-BR (not named by #2775, but carrying the same stale design) get the mechanical portion of the same fix: command-string swaps, table headers, ARCHITECTURE.md diagram labels, and technical- term swaps that reuse a word already attested elsewhere in the same file (合法性/적법성/legitimidade for "legitimacy") — surrounding prose untouched. The remainder in those three locales — full-paragraph rewrites of the corrected degrade-path mechanism, deleted "External dependency" bullets, and "manually install slopcheck" code blocks — needs prose composed by a fluent speaker of each language and is filed as open-gsd/gsd-core#3002 with an exact file:line inventory. * test(#2775): acknowledge gsd-planner.md byte growth from the STRIDE-row fix agents/gsd-planner.md grew 14 bytes (49309 -> 49323) from the STRIDE supply-chain row correction (slopcheck -> package-legitimacy gate). Emitted agent/workflow files are byte-tracked; this fragment acknowledges the growth per tests/emitted-attribution.test.cjs's "differential attribution over the real tree" check. * docs(#2775): close ja-JP FEATURES.md gap; fix a ko-KR transliterated heading docs/ja-JP/FEATURES.md:2808 still read the katakana transliteration "スロップチェック verdict" in REQ-PKG-GATE-01 — invisible to a literal "slopcheck" grep, so it was missed when ja-JP parity was checked and declared complete. Corrected to "正当性判定" (legitimacy verdict), matching the term already established in ja-JP/explanation/ security-model.md and ja-JP/USER-GUIDE.md. This was the only remaining ja-JP gap; a full sweep for the transliterated form across docs/ja-JP/ now returns zero hits, and the ja-JP mirror is genuinely at parity. docs/ko-KR/USER-GUIDE.md:398's heading "슬롭체크 판정:" had the same transliteration problem. Fixed inline to "적법성 판정:", reusing the 적법성/legitimacy word already attested two lines below in the same table. A parallel sweep of zh-CN and pt-BR found no transliterated forms of "slopcheck" in either locale. The remaining transliterated occurrence in ko-KR (USER-GUIDE.md:406, the lead-in to the pip-install code block) needs prose composition like the rest of that block and is added to open-gsd/gsd-core#3002's inventory. * chore(#2775): backfill changeset PR number to 3010 --------- Co-authored-by: sim <sim@local>
This commit is contained in:
@@ -428,7 +428,7 @@ ui-phase → UI-SPEC.md (contrato de design, opcional)
|
||||
plan-phase
|
||||
├── Portão de pesquisa (bloqueia se RESEARCH.md tiver perguntas abertas não resolvidas)
|
||||
├── Pesquisador de Fase → RESEARCH.md
|
||||
│ └── Portão de Legitimidade de Pacotes: slopcheck em cada pacote; [SLOP] removido,
|
||||
│ └── Portão de Legitimidade de Pacotes: veredicto da API de registro em cada pacote; [SLOP] removido,
|
||||
│ [SUS]/[ASSUMED] sinalizados; tabela de Auditoria escrita no RESEARCH.md
|
||||
├── Planner (com verificação de alcançabilidade) → arquivos PLAN.md
|
||||
│ └── checkpoint:human-verify injetado antes de instalações [ASSUMED]/[SUS];
|
||||
@@ -687,7 +687,7 @@ O pipeline pesquisador → planner → executor inclui um portão de cadeia de s
|
||||
|
||||
| Camada | Componente | Ação |
|
||||
|--------|------------|------|
|
||||
| Pesquisa | `gsd-phase-researcher` | Executa `slopcheck install <pkgs> --json`; escreve tabela `## Package Legitimacy Audit` no RESEARCH.md; remove pacotes `[SLOP]` antes de o RESEARCH.md ser escrito |
|
||||
| Pesquisa | `gsd-phase-researcher` | Executa `gsd-tools query package-legitimacy check --ecosystem <npm\|pypi\|crates> <pkgs>`; escreve tabela `## Package Legitimacy Audit` no RESEARCH.md; remove pacotes `[SLOP]` antes de o RESEARCH.md ser escrito |
|
||||
| Planejamento | `gsd-planner` | Lê a tabela de Auditoria; insere `checkpoint:human-verify` antes de qualquer tarefa de instalação `[ASSUMED]` ou `[SUS]`; adiciona linha STRIDE `T-{phase}-SC` supply-chain ao `<threat_model>` |
|
||||
| Execução | `gsd-executor` | REGRA 3 exclui a instalação de pacotes do escopo de correção automática; instalações com falha surgem como checkpoints, nunca substituições silenciosas |
|
||||
|
||||
|
||||
@@ -185,7 +185,7 @@ Pesquisa, planeja e verifica uma fase.
|
||||
- Com `--view`: imprime o RESEARCH.md existente no stdout, sem criar agente. Apresenta erro se RESEARCH.md estiver ausente.
|
||||
|
||||
**Portão de Legitimidade de Pacotes (v1.42.1):**
|
||||
Quando o pesquisador recomenda pacotes externos, executa `slopcheck install <pkg> --json` em cada um e escreve uma tabela `## Package Legitimacy Audit` no RESEARCH.md com os campos Registry, Age, Downloads, Source Repo e veredicto do slopcheck. Veredictos:
|
||||
Quando o pesquisador recomenda pacotes externos, executa `gsd-tools query package-legitimacy check --ecosystem <npm|pypi|crates> <pkg>` em cada um e escreve uma tabela `## Package Legitimacy Audit` no RESEARCH.md com os campos Registry, Age, Downloads, Source Repo e veredicto de legitimidade. Veredictos:
|
||||
|
||||
- `[SLOP]` — pacote removido do RESEARCH.md completamente; nunca chega ao planejador
|
||||
- `[SUS]` — pacote sinalizado; o planejador insere `checkpoint:human-verify` antes da tarefa de instalação
|
||||
|
||||
@@ -382,8 +382,8 @@ Ferramentas de codificação com IA alucinam nomes de pacotes. Atacantes pré-re
|
||||
```markdown
|
||||
## Package Legitimacy Audit
|
||||
|
||||
| Package | Registry | Age | Downloads | Source Repo | slopcheck | Disposition |
|
||||
|---------|----------|-----|-----------|-------------|-----------|-------------|
|
||||
| Package | Registry | Age | Downloads | Source Repo | Verdict | Disposition |
|
||||
|---------|----------|-----|-----------|-------------|---------|-------------|
|
||||
| express | npm | 13 yrs | 100M+/wk | github.com/expressjs/express | [OK] | Approved |
|
||||
| some-new-util | npm | 3 days | 47 | none | [SLOP] | REMOVED |
|
||||
| api-bridge | npm | 6 mo | 1.2k/wk | github.com/user/api-bridge | [SUS] | Flagged |
|
||||
@@ -395,7 +395,7 @@ Pacotes com `[SLOP]` são removidos do RESEARCH.md inteiramente e nunca chegam a
|
||||
|
||||
**Durante a execução** — se uma instalação falhar, o executor apresenta um checkpoint e para em vez de tentar silenciosamente uma alternativa.
|
||||
|
||||
**Veredictos do slopcheck:**
|
||||
**Veredictos de legitimidade:**
|
||||
|
||||
| Veredicto | Significado | Ação do GSD |
|
||||
|---------|---------|------------|
|
||||
|
||||
@@ -56,7 +56,7 @@ pesquisador → planejador → executor do GSD e eventualmente seria executado c
|
||||
A barreira opera em três estágios do pipeline:
|
||||
|
||||
**Estágio de pesquisa.** Quando `gsd-phase-researcher` recomenda pacotes
|
||||
externos, executa `slopcheck install <pkgs> --json` para cada um. Os resultados
|
||||
externos, executa `gsd-tools query package-legitimacy check --ecosystem <npm|pypi|crates> <pkgs>` para cada um. Os resultados
|
||||
são gravados em uma tabela `## Package Legitimacy Audit` no `RESEARCH.md`.
|
||||
Pacotes marcados com `[SLOP]` (alucinação de alta confiança ou registrado por
|
||||
atacante) são **removidos inteiramente do `RESEARCH.md`** antes de o arquivo
|
||||
@@ -229,7 +229,7 @@ bem-sucedido.
|
||||
|
||||
**O que o Package Legitimacy Gate não elimina:** Um pacote legítimo que é
|
||||
comprometido posteriormente (tomada de conta, confusão de dependências em sua
|
||||
própria árvore) não é detectado pelo slopcheck, que verifica sinais de registro
|
||||
própria árvore) não é detectado pelo portão da API de registro, que verifica sinais de registro
|
||||
no momento da pesquisa. Lock files e `npm audit` na camada de integridade de
|
||||
dependências são os controles para essa classe de ataque.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user