Pular para o conteúdo principal

Prompt workflows

ContractForge AI trata os prompts como intenção do usuário, não como verdade executável. O prompt é normalizado em uma especificação determinística do projeto antes de qualquer provider-backed enrichment is allowed.

Good prompt shape

Um forte prompt de geração de projeto inclui:

  • sistema de origem;
  • tipo de conector;
  • local ou tabela de origem;
  • plataforma ou plataformas alvo;
  • padrão de catálogo/esquema/tabela de destino;
  • requested layers;
  • modo de gravação por conjunto de dados quando diferente;
  • horário e fuso horário;
  • requisitos de qualidade e governação;
  • chaves explícitas ou uma solicitação para deixar as chaves como decisões.

Exemplo:

Create a Supabase medallion project for AWS and Databricks.
Use one shared JDBC connection for products and product_movements.
Products should use hash_diff_upsert with product_id as merge key.
Movements should append by movement_uid.
Run daily with cron 0 6 * * * in America/Sao_Paulo.
Add quality checks for product_id not null, movement_uid not null and quantity >= 0.
Generate review reports and keep platform differences minimal.

Solicitar planejamento

Comece com plan-project quando o prompt ainda for ambíguo:

contractforge-ai plan-project \
--intent "Create Supabase medallion for AWS and Databricks daily at 6 Sao Paulo time." \
--schema schemas/products.json \
--preferred-target contractforge-yaml \
--format markdown

O planejador relata comandos de geração recomendados e decisões não resolvidas. Use isto antes de gravar arquivos quando o prompt puder omitir chaves, detalhes da fonte ou escolhas de plataforma.

Prompt de projeto

Use generate para geração de projeto com intenção inicial:

contractforge-ai generate \
--prompt "Create a USGS earthquake REST GeoJSON medallion for Databricks, AWS, Snowflake, Fabric and GCP. Bronze reads the all_day.geojson endpoint, silver extracts event fields, gold aggregates by magnitude band." \
--schemas schemas/usgs-events.json \
--with-ai \
--provider openai \
--output-dir generated/usgs-earthquakes

Para solicitações de vários conjuntos de dados, passe todos os esquemas:

contractforge-ai generate \
--prompt "Create one USGS GeoJSON medallion project with bronze raw response, silver event extraction and gold summaries. Generate AWS, Databricks, Snowflake, Fabric and GCP-ready project files." \
--schemas schemas/products.json schemas/product_movements.json \
--with-ai \
--provider openai \
--output-dir generated/supabase

O usuário pode substituir o comportamento por tabela no prompt. Se uma mesa precisar de um conector, tabela de origem, modo de gravação ou chaves diferentes, diga isso explicitamente.

Decisões necessárias

ContractForge AI deve produzir RequiredDecision em vez de adivinhar quando um prompt omits production-critical details:

Missing detailPor que não é adivinhado
Merge keysEles definem a identidade de atualização e a idempotência.
Hash-diff columnsThey define change detection semantics.
Gold grainIt defines aggregation correctness.
Política PIIEle define o comportamento legal e de governança.
Secret namesEles devem vir do tempo de execução ou da equipe da plataforma de destino.
Production computeEle altera o comportamento do custo e do tempo de execução.

A orientação do prestador pode sugerir respostas prováveis, mas essas respostas permanecem revisão necessária.

Dicas de plataforma

As dicas da plataforma são explícitas:

Prompt wordingResultado
Databricks, Unity Catalog, DAB, Auto LoaderDatabricks hint.
AWS Glue, Athena, Lake Formation, Glue jobAWS hint.
s3://... onlyDica de conector/armazenamento, não automaticamente AWS.
Iceberg onlyDica em formato de tabela, não automaticamente AWS.

Isso evita que o armazenamento de origem escolha silenciosamente a plataforma.

Valide o projeto gerado

Sempre valide após a geração:

contractforge-ai validate-project-structure generated/supabase \
--adapter databricks \
--adapter aws \
--format html > generated/supabase/project_validation.html

Trate READY e READY_WITH_WARNINGS como portas de validação utilizáveis. Tratar NEEDS_DECISIONS, INVALID e UNSAFE não podem ser implementados até serem resolvidos.