Canonicalize public alpha identity to DevComputaria (@devcomputaria/prd-as-code, prd.devcomputaria/v1alpha1) - #1
Conversation
Co-authored-by: marcialwushu <16365313+marcialwushu@users.noreply.github.com>
Co-authored-by: marcialwushu <16365313+marcialwushu@users.noreply.github.com>
Co-authored-by: marcialwushu <16365313+marcialwushu@users.noreply.github.com>
Co-authored-by: marcialwushu <16365313+marcialwushu@users.noreply.github.com>
Co-authored-by: marcialwushu <16365313+marcialwushu@users.noreply.github.com>
Co-authored-by: marcialwushu <16365313+marcialwushu@users.noreply.github.com>
Co-authored-by: marcialwushu <16365313+marcialwushu@users.noreply.github.com>
@devcomputaria/prd-as-code, prd.devcomputaria/v1alpha1)
marcialwushu
left a comment
There was a problem hiding this comment.
Review de implementação — PR #1 (aceite condicional)
Veredito: aprove a intenção e o contrato público. Não trate isto como “todas as mudanças do produto”. Este PR só canoniciza identidade. O framework, o exemplo transfer e a CLI já estavam no main (e5bb958).
Head: 2f615070e2be7b01bd0d9f4ce49e40743e37aec2
Base: main @ e5bb958
Escopo real: @marcialwushu/prd-as-code + intent.gitreverse/v1alpha1 + gitreverse.dev + copyright prodshape + “criado nesta conversa” → @devcomputaria/prd-as-code + prd.devcomputaria/v1alpha1 + https://prd.devcomputaria/schemas/ + Copyright (c) 2026 DevComputaria.
O que a implementação entregou
| Superfície | Resultado |
|---|---|
package.json / lock |
@devcomputaria/prd-as-code |
src/domain/model.ts |
API_VERSION = 'prd.devcomputaria/v1alpha1' |
scripts/generate-schemas.py |
gerador alinhado ao novo apiVersion/$id |
framework/schemas/* e cópia em examples/transfer/framework/schemas/* |
const e $id regenerados |
templates + examples/transfer/product/** + intent.config.yaml |
envelope canônico |
| README | badge CI, bloco alpha, .tgz devcomputaria-prd-as-code-…, procedência sem “nesta conversa” |
| LICENSE / CHANGELOG / USAGE / STRUCTURE / MIGRATION / language.md / capabilities.json | nome de pacote e contrato alinhados |
tests/identity.test.mjs |
trava de regressão da identidade pública |
Legado prodshape permanece só onde a migração v0 exige (docs/MIGRATION.md, src/legacy/v0, mapa .intent/migrations/prodshape-v0.json). Correto.
O que foi conferido no diff
- Substituição mecânica consistente nos 13 kinds +
artifact.schema.json+config.schema.json(raiz e exemplo). - README deixa de vender pacote publicado e deixa de citar conversa.
- Teste de identidade cobre: nome do pacote no lock,
$id/apiVersionemframework/schemas, tokens banidos nas superfícies listadas, frase proibida em Markdown público. - Sem mudança de semântica de decisão, processo, Gherkin, governança ou CLI. Sem novo comportamento de produto.
Bloqueios / débitos desta implementação
-
Snapshots do exemplo foram editados no lugar e o filename não acompanhou o digest.
examples/transfer/.intent/snapshots/804ce961…jsoned6c280ed…jsontrocaramapiVersionno JSON, mas o nome do arquivo continua o hash antigo.canonicalizationsegue"intent/v1".
Secite/citations checkresolve snapshot por digest do artefato, o exemplo ficaunresolvedoustaledepois do merge.
Antes do merge: regenerar snapshots pelo CLI (prd cite/ refresh) ou provar comprd -C examples/transfer citations checkque os filenames ainda batem. -
O teste de identidade foi estreitando o alvo até passar.
Commits 3–8 não canonicizam mais nada; só excluem pastas e separam a frase proibida.src/quase inteiro fica de fora (sómodel.ts).tests/fica de fora. Isso é aceitável se o contrato público é só o que o teste lista — não é prova de ausência no compilador, scaffold ou legado. -
Cópia dupla
framework/↔examples/transfer/framework/.
O PR atualiza as duas árvores à mão. Drift no próximogenerate-schemas.pyé o modo de falha. Fora de escopo deste PR; não some com o merge. -
PR ainda draft. Checks no head não estavam verdes no momento desta revisão (status
pending/vazio). Não mergear draft semnpm test+npm run intent:validate+intent:testno SHA final. -
Breaking change de contrato, esperado em alpha. Artefato com
apiVersion: intent.gitreverse/v1alpha1deixa de validar. Não há migrador deapiVersion. Documentar numa linha no CHANGELOG Unreleased: “breaking: envelopeprd.devcomputaria/v1alpha1”.
Fora deste PR (não bloquear aqui)
- Topics, tag
v0.2.0-alpha.1, publicação npm. - Autor git continua Copilot /
marcialwushu; o artefato público já é DevComputaria. azure-pipelines.ymlduplicado.- ADRs de 7 linhas e skills Copilot curtas.
Condição de aceite
- Sair de draft.
- CI
verify(node 22 e 24) verde no head. -
prd -C examples/transfer validate --strictecitations checkpassam depois da troca deapiVersion. - CHANGELOG Unreleased registra o breaking do envelope.
- Squash recomendado: um commit
fix: canonicalize public alpha identity to @devcomputaria/prd-as-code. Os 6 commits de scope do teste não precisam sobreviver nomain.
Implementação da identidade: aceita.
Merge só depois dos quatro checks acima. Sem isso, o repo publica um contrato novo com um exemplo cuja evidência ainda aponta para o hash do contrato velho.
This PR performs the first priority alpha cleanup to unify the repository’s public identity across package metadata, docs, schemas, and generated artifacts. It removes mixed branding (
@marcialwushu,intent.gitreverse,gitreverse.dev) from canonical surfaces while preserving legacyprodshapereferences only where migration compatibility requires it.Identity canonicalization (package + contract)
@devcomputaria/prd-as-codeinpackage.jsonandpackage-lock.json.prd.devcomputaria/v1alpha1(src/domain/model.ts).https://prd.devcomputaria/schemas/....Schema generation + generated artifacts
scripts/generate-schemas.pyto emit canonicalapiVersionand$id.framework/schemas/*.schema.jsonexamples/transfer/framework/schemas/*.schema.jsontemplates/product/**,examples/transfer/**).Public documentation and metadata surfaces
.github/workflows/ci.yml.CHANGELOG.md,docs/USAGE.md,docs/STRUCTURE.md,framework/language.md,framework/capabilities.json, andLICENSE(DevComputariacopyright).Legacy compatibility boundary (intentional)
prodshapenaming only in legacy/migration compatibility paths and docs where historical format support is explicitly described.Regression guards for canonical identity
tests/identity.test.mjsto enforce: