shipping-artifacts
phuryn/pm-skills
Documenta aplicativos desenvolvidos com IA, incluindo arquitetura, permissões, segredos e mapas de cobertura de testes, para que possam ser revisados antes do lançamento.
...Expandir tudoDocumentação de artefatos: os documentos que tornam o código gerado por IA passível de revisão
Objetivo
Agentes de IA escrevem código rapidamente, mas não deixam nenhum registro duradouro da intenção — o que o sistema deve fazer, quem tem permissão para fazer o quê, onde estão armazenados os segredos, quais regras são efetivamente verificadas. Sem esse registro, nenhum ser humano (nem nenhum agente de auditoria) pode determinar se o código está seguro para ser liberado. Esta habilidade define o pequeno conjunto de documentos que restaura a revisabilidade.
Esses documentos ficam na pasta /documentation/ e são escritos para dois leitores: um revisor humano e o próximo agente de codificação de IA. Eles representam a parte do “estado pretendido” de toda auditoria posterior — uma revisão de segurança ou desempenho só é válida na medida em que pode comparar o código com a intenção original.
Como o conjunto está organizado
O conjunto não é uma lista fixa — é um pequeno núcleo, além de documentos condicionais que você adiciona apenas quando a capacidade existe.
- Documentos essenciais — todo aplicativo passível de revisão possui esses elementos, portanto, sempre os produza.
- Documentos condicionais — inclua um apenas se o aplicativo realmente tiver essa capacidade. Caso contrário, escreva uma única linha no
arquivo architecture.md(“Sem tarefas agendadas — semcron.md.”) em vez de criar um documento vazio. A revisabilidade vem de um mapa honesto, e “não fazemos X” faz parte desse mapa. - A maioria dos documentos é gerada por engenharia reversa a partir do código pelo
/document-app. A única exceção éo tests.md, que é derivado dos outros documentos pelo/derive-tests— trata-se do mapa de verificação, não de uma descrição de um subsistema.
Seja brutalmente honesto sobre o estado atual, sem cair na paranóia. A tarefa é criar um mapa preciso, não um atestado de boa saúde. Cada documento é curto, repleto de tabelas e marcadores, e ignora a teoria genérica.
Documentos principais
Cada entrada: arquivo · objetivo em uma linha · o que deve abordar · como um revisor o utiliza.
architecture.md— o que é o sistema e como ele se integra.- Deve abordar: visão geral do produto + premissas-chave; pilha de tecnologias; como a autenticação/sessões/reivindicações fluem de ponta a ponta; os limites de confiança (por exemplo, função do serviço vs. cliente); uma breve lista de riscos conhecidos/suposições (cada item respaldado pela referência ao local onde aparece no código, não uma lista de verificação genérica); um índice de “Documentos Relacionados” com todos os outros documentos produzidos.
- Uso pelo revisor: o documento raiz — todo o restante é referenciado a partir daqui.
flows.md— as jornadas em que as permissões e os efeitos colaterais são efetivamente exercidos.- É preciso capturar: cada fluxo de carga como ator + pré-condição + resultado de sucesso; a sequência passo a passo passando por IU → servidor → dados → tarefas → provedores → agentes; a verificação de autorização em cada etapa protegida (qual reivindicação/função/escopo, em qual recurso e o caso esperado de recusa ); as travessias de limites de confiança (navegador → servidor, servidor → provedor, tarefa → aplicativo, agente → ferramenta, webhook → aplicativo); as mudanças de estado e os efeitos colaterais que cada etapa causa (gravações, e-mails enfileirados, tarefas acionadas, chamadas de saída).
- Uso pelo revisor: a visão em tempo de execução que uma matriz estática
de permissões.mdnão consegue mostrar — onde e em que ordem a autorização é aplicada, e onde ela pode ser ignorada. - Regra anti-PRD: um fluxo que não envolva permissões, integridade de dados, efeitos colaterais externos, dinheiro, privacidade ou segurança operacional não tem lugar aqui. Este é um mapa de segurança/operações, não uma especificação de recursos.
permissions.md— quem tem permissão para fazer o quê.- Deve incluir: funções/reivindicações; de onde o escopo é derivado (token x banco de dados); uma matriz recurso × operação × função; quais tabelas possuem segurança no nível da linha e quais dependem de verificações impostas por código.
- Uso pelo revisor: a linha de base com a qual uma auditoria de controle de acesso compara o código.
O arquivo flows.mdmostra isso em ação; esta é a referência estática.
variables.md— configuração e segredos, mapeados ao risco.- É preciso incluir: uma tabela com Nome · usado por · escopo (servidor/cliente) · fonte · rotação · risco; confirmação explícita de que nenhum segredo está empacotado no lado do cliente; uma lista de verificação pré-entrada em operação.
- Uso pelo revisor: a superfície de vazamento de segredos/PII e o plano de rotação durante a resposta a incidentes.
tests.md— o mapa de verificação: quais regras documentadas são efetivamente verificadas, quais são apenas propostas e quais não são verificadas por nada.- Deve incluir, em três seções claramente separadas para que o mapa não apresente um resultado falsamente positivo:
- Cobertura existente — testes que estão no repositório atualmente, cada um vinculado à regra à qual se refere (para que o mapa reflita a realidade, não uma lista de desejos).
- Testes propostos — casos recomendados ainda não escritos, marcados por tipo de teste (unidade/integração automatizada · em produção supervisionada · revisão manual).
- Lacunas — regras documentadas sem qualquer verificação, classificadas de acordo com o que sua violação expõe.
- Cada linha contém: caso de uso → regra → comportamento esperado (incluindo o caso de negação/negativo) → fonte de evidência (documentação + código) → status (existente / proposto / nenhum). Também indica quais verificações são exigidas pela CI e bloqueiam as fusões para
o branch principal. - Uso pelo revisor: a forma operacional de “documentado == implementado” — mostra se cada regra mencionada nos outros documentos está de fato validada por um teste atualmente, se é apenas proposta ou se não foi verificada.
- Produzido por
/derive-tests(nãopor /document-app), pois é derivado dos outros documentos e do conjunto de testes existente, em vez de ser extraído de um subsistema.
- Deve incluir, em três seções claramente separadas para que o mapa não apresente um resultado falsamente positivo:
Documentos condicionais (incluir apenas quando o recurso existir)
emails.md— todas as notificações que o sistema envia. Incluir apenas se o aplicativo enviar e-mails transacionais ou automatizados.- Deve capturar: o caminho fila → processador → provedor; modelos e as variáveis que eles aceitam; comportamento de repetição/recuo; onde procurar quando um envio falha.
- Uso pelo revisor: identificar entradas não validadas nos modelos e limites de exposição de informações de identificação pessoal (PII).
cron.md— todas as tarefas agendadas e como operá-las com segurança. Incluir apenas se houver tarefas agendadas ou em segundo plano.- Deve incluir: uma tabela de inventário (tarefa → programação → função → segredos → limites → nova tentativa); como cada tarefa permanece idempotente; como as chamadas internas se autenticam; onde verificar as últimas execuções.
- Uso pelo revisor: identificar gatilhos falsificáveis e tarefas em segundo plano sem limites.
seo.md— como um aplicativo de página única lida com SEO e visualizações em redes sociais. Inclua apenas se houver rotas públicas/indexáveis ou voltadas para bots.- Deve incluir: a abordagem de pré-visualização (meta estática / pré-renderização / HTML de borda); uma tabela rota → necessidades de SEO → apenas dados públicos; como os metadados dinâmicos são sanitizados; roteamento para bots versus humanos.
- Uso pelo revisor: detectar violações da regra “somente dados públicos” e injeção de metadados em rotas para bots.
automation.md— agentes incorporados e outros caminhos de automação. Inclua apenas se o aplicativo incorporar agentes de IA, fluxos de trabalho de LLM, chamadas de ferramentas, webhooks ou automação externa.- É necessário registrar, por automação/agente: gatilho + responsável + se é executado automaticamente ou somente após aprovação; as entradas que ele pode ler e as ferramentas/APIs exatas que pode chamar (a superfície da ferramenta é, por si só, uma barreira de proteção rígida); onde reside o direcionamento (o prompt) em comparação com as barreiras de proteção rígidas não relacionadas ao prompt; o contrato de saída de volta para o aplicativo (esquema, validação, tratamento de falhas); efeitos colaterais de responsabilidade do aplicativo versus sugestões de responsabilidade do agente; e os controles — etapas de aprovação, registro de auditoria/linha do tempo, limites de taxa, novas tentativas, interruptor de emergência.
- Uso pelo revisor: torna visíveis os caminhos ocultos de automação e traça a linha divisória entre o que um agente propõe e o que o aplicativo impõe — a superfície de maior risco em aplicativos modernos desenvolvidos com IA.
Notas
- Cada documento produzido adiciona uma referência a si mesmo no arquivo
architecture.md, na seção “Documentos relacionados”, para que o conjunto permaneça localizável. - Ignore qualquer documento condicional que não se aplique e indique isso em uma única linha, em vez de inventar conteúdo.
- Mantenha exemplos e modelos prontos fora desses documentos — eles descrevem este sistema, não o método geral.
- O arquivo de contexto operacional do agente (
CLAUDE.md/AGENTS.md) é um artefato diferente — instruções derivadas desses documentos, não da documentação do sistema. Ele é gerado na etapa de transferência pelo/ship-check, não aqui. O `tests.md`é gerado pelo comando`/derive-tests`; os demais são gerados pelo comando `/document-app`.- Não inclua uma linha de “data de atualização”; o histórico do arquivo é a fonte de verdade.
---
name: shipping-artifacts
description: Documents AI-built apps with architecture, permissions, secrets, and test coverage maps to make them reviewable before shipping.
---
# Shipping Artifacts: The Docs That Make AI-Built Code Reviewable
## Purpose
AI agents write code fast, but they leave no durable record of *intent* — what the system is supposed to do, who is allowed to do what, where the secrets live, which rules are actually verified. Without that record, no human (and no auditing agent) can tell whether the code is safe to ship. This skill defines the small set of documents that restore reviewability.
These docs live in `/documentation/` and are written for two readers: a human reviewer and the next AI coding agent. They are the **intended-state** half of every later audit — a security or performance review is only as good as the intent it can compare the code against.
## How the set is organized
The set is **not** a fixed list — it is a small **core** plus **conditional** docs you add only when the capability exists.
- **Core docs** — every reviewable app has these surfaces, so always produce them.
- **Conditional docs** — include one only if the app actually has that capability. If it doesn't, write a single line in `architecture.md` ("No scheduled work — no `cron.md`.") rather than inventing an empty document. Reviewability comes from an honest map, and "we don't do X" is part of the map.
- Most docs are reverse-engineered from code by `/document-app`. The one exception is `tests.md`, which is *derived from the other docs* by `/derive-tests` — it is the verification map, not a description of a subsystem.
Be brutally honest about the current state without being paranoid. The job is an accurate map, not a clean bill of health. Each doc is short, table-and-bullet heavy, and skips generic theory.
## Core documents
Each entry: file · one-line purpose · what it must capture · how a reviewer uses it.
1. **`architecture.md`** — what the system is and how it hangs together.
- Must capture: product overview + key assumptions; tech stack; how auth/sessions/claims flow end to end; the trust boundaries (e.g. service-role vs. client); a short **Known risks / assumptions** list (each entry backed by where it shows up in the code, not a generic checklist); a "Related Documents" index of every other doc produced.
- Reviewer use: the root document — everything else is cross-referenced from here.
2. **`flows.md`** — the journeys where permissions and side effects are actually exercised.
- Must capture: each load-bearing flow as actor + precondition + success outcome; the step-by-step sequence across UI → server → data → jobs → providers → agents; the **authz check at each protected step** (which claim/role/scope, on which resource, and the expected *deny* case); the **trust-boundary crossings** (browser→server, server→provider, job→app, agent→tool, webhook→app); the state changes and side effects each step causes (writes, emails queued, jobs triggered, outbound calls).
- Reviewer use: the runtime view a static `permissions.md` matrix can't show — *where* and *in what order* authorization is enforced, and where it can be skipped.
- **Anti-PRD rule:** a flow that doesn't touch permissions, data integrity, external side effects, money, privacy, or operational safety does not belong here. This is a security/operations map, not a feature spec.
3. **`permissions.md`** — who is allowed to do what.
- Must capture: roles/claims; where scope is derived (token vs. DB); a resource × operation × role matrix; which tables have row-level security and which rely on code-enforced checks.
- Reviewer use: the baseline an access-control audit compares the code against. `flows.md` shows it in motion; this is the static reference.
4. **`variables.md`** — configuration and secrets, mapped to risk.
- Must capture: a table of Name · used-by · scope (server/client) · source · rotation · risk; explicit confirmation that no secret is bundled client-side; a pre-go-live checklist.
- Reviewer use: the secrets/PII-leak surface and the rotation plan during incident response.
5. **`tests.md`** — the verification map: which documented rules are actually checked, which are only proposed, and which are checked by nothing.
- Must capture, in three clearly separated sections so the map can't read falsely green:
- **Existing coverage** — tests that are in the repo *today*, each tied to the rule it pins (so the map reflects reality, not a wish-list).
- **Proposed tests** — recommended cases not yet written, marked by **test type** (automated unit/integration · guarded live · manual review).
- **Gaps** — documented rules with no verification at all, ranked by what crossing them exposes.
- Each row carries: use-case → rule → expected behavior (including the deny/negative case) → evidence source (doc + code) → status (existing / proposed / none). It also notes which checks are CI-required and gate merges to `main`.
- Reviewer use: the operational form of "documented == implemented" — it shows whether each rule the other docs claim is actually pinned by a test today, only proposed, or unverified.
- Produced by `/derive-tests` (not `/document-app`), because it is derived from the other docs and the existing test suite rather than read off a subsystem.
## Conditional documents (include only when the capability exists)
6. **`emails.md`** — every notification the system sends. *Include only if the app sends transactional or automated email.*
- Must capture: the queue → processor → provider path; templates and the variables they accept; retry/backoff behavior; where to look when a send fails.
- Reviewer use: spotting unvalidated template inputs and PII exposure boundaries.
7. **`cron.md`** — all scheduled work and how to operate it safely. *Include only if scheduled or background jobs exist.*
- Must capture: an inventory table (job → schedule → function → secrets → limits → retry); how each job stays idempotent; how internal calls authenticate; where to see last runs.
- Reviewer use: finding forgeable triggers and unbounded background jobs.
8. **`seo.md`** — how a single-page app handles SEO and social previews. *Include only if there are public/indexable or bot-facing routes.*
- Must capture: the preview approach (static meta / prerender / edge HTML); a route → needs-SEO → public-data-only table; how dynamic metadata is sanitized; bot-vs-human routing.
- Reviewer use: catching public-data-only violations and metadata injection on bot routes.
9. **`automation.md`** — embedded agents and other automation paths. *Include only if the app embeds AI agents, LLM workflows, tool-calling, webhooks, or external automation.*
- Must capture, per automation/agent: trigger + owner + whether it runs automatically or only after approval; the inputs it may read and the **exact tools/APIs it may call** (the tool surface is itself a hard guardrail); where **steering** lives (the prompt) vs. the **non-prompt hard guardrails**; the **output contract** back to the app (schema, validation, failure handling); **app-owned side effects vs. agent-owned suggestions**; and the controls — approval gates, audit/timeline logging, rate limits, retries, kill switch.
- Reviewer use: makes hidden automation paths visible and draws the line between what an agent *proposes* and what the app *enforces* — the highest-risk surface in modern AI-built apps.
## Notes
- Each produced doc adds a reference to itself in `architecture.md` under a "Related Documents" section, so the set stays discoverable.
- Skip any conditional document that doesn't apply, and say so in one line rather than inventing content.
- Keep examples and finished templates out of these docs — they describe *this* system, not the general method.
- The agent operating-context file (`CLAUDE.md` / `AGENTS.md`) is a *different* artifact — instructions derived from these docs, not system documentation. It is produced at the handoff step by `/ship-check`, not here.
- `tests.md` is produced by `/derive-tests`; the rest are produced by `/document-app`.
- Do not include an "updated date" line; the file's history is the source of truth.
Todos os arquivos
1 arquivosInstalar shipping-artifacts
Baixe e extraia os arquivos das habilidades para o diretório .claude/skills/.
Baixar ZIPClone o repositório e copie os arquivos da habilidade para o seu projeto.
git clone https://github.com/phuryn/pm-skills/tree/main/pm-ai-shipping/skills/shipping-artifacts # Copy SKILL.md to your .claude/skills/ directory
Copiar





Lar
