documentação · agente

Seu agente é o usuário primário. Este é o manual dele.

O Concept fala MCP nativo: um servidor Streamable HTTP stateless no mesmo backend. Conectou, o servidor entrega o protocolo in-band no initialize — seu agente recebe as regras antes da primeira chamada. Esta página é o espelho humano delas.

1 · Conectar — por cliente

⚠️ a key vai SEMPRE em header ou env var — nunca em campo de conector (Client ID/URL), nunca literal em config commitada · gere e revogue as suas em Painel → Chaves

Claude Code (uma linha, uma vez)

# user-scope: vale para todas as sessões e projetos
claude mcp add -s user --transport http concept https://concept-backend-production.up.railway.app/mcp --header "Authorization: Bearer <sua-key>"

Claude Desktop (via mcp-remote)

// claude_desktop_config.json — Windows: %APPDATA%\Claude · macOS: ~/Library/Application Support/Claude "mcpServers": { "concept": { "command": "cmd", // macOS/Linux: "npx" direto, sem o wrapper "cmd","/c" "args": ["/c", "npx", "-y", "mcp-remote", "https://concept-backend-production.up.railway.app/mcp", "--header", "Authorization:${CONCEPT_AUTH}"], "env": { "CONCEPT_AUTH": "Bearer <sua-key>" } } }

o header vai por env var de propósito (bug de espaços em args no Windows) · reinicie o Desktop depois

Celular (app Concept)

Cole a key nas configurações do app — uma key própria (read_only pra consultar; read_write pra decidir o inbox), revogável isolada.

claude.ai (web) — ainda não

O conector custom do claude.ai exige OAuth, e o Concept é key-only por decisão (fase partner). Enquanto isso: Desktop ou Code cobrem o mesmo uso.

server adicionado no meio de uma sessão só carrega na próxima · keys hoje são por convite (sem signup)

2 · Escopos de key — o tenant é derivado da key

Você só vê e toca o que é seu. Row-Level Security no banco, não filtro de aplicação.

read_only

Todas as leituras. É a key do app no seu celular e de qualquer superfície de consulta.

ckey_ro_…
read_write

Leituras + adoções, gaps, work items — e propõe mudança de canon: a proposta espera o dono no painel (US008b).

ckey_rw_…
trusted

Idem; com a aprovação de canon DESLIGADA (seed em massa), aplica direto. A key do dono do tenant.

ckey_rw_… · flag trusted

3 · O protocolo de trabalho (4 passos)

passo 1 — Antes de mexer num projeto

Consulte o compliance e olhe as linhas behind/gap na área da sua mudança. Drift = pin < head — é fato (query), não opinião. O bloco due (US020) traz cadências de auditoria/legal vencidas, nunca rodadas ou com rearm — não-vazio, sinalize ao dono. Veio total: 0? O projeto está cego: faça antes o passe inicial de mapeamento (o que ele já adota → adoption_report com evidência).

concept_project_compliance
passo 2 — Aprendeu uma prática ou lição

Proponha uma entry nova ou evolua a existente — a versão anterior fica imutável. O changeNote explica o porquê, não só o quê.

concept_entry_propose · concept_entry_evolve
passo 3 — Shipou algo que fecha drift/gap

Reporte a adoção com o pin novo e evidência arquivo:linha ou a story real. Nunca reporte sem evidência.

concept_adoption_report
passo 4 — Gap real, sem fix imediato

Registre o gap — vira work item para curadoria humana no app. Em projeto com backlog migrado, crie a story com concept_story_create. Para editar, leia concept_story_get e use concept_story_update; o corpo é substituído integralmente, sem histórico. O antigo concept_story_upsert foi removido.

concept_gap_report

4 · Os 44 tools

leitura · qualquer key 15 tools
concept_pattern_conformanceregistro de conformidade com referência: favoritos, critérios, projetos sem adoção, ambiente e evidências; não executa inspeçãoconcept_pattern_assessment_historyaté 50 observações imutáveis por padrão/projeto/ambiente, inclusive correçõesconcept_audit_listinventário paginado de segurança, legal e marketing: todos os relógios, revisão concorrente, critérios, C/D/U/N e evidência histórica; /painel/auditoriasconcept_work_item_listpendências abertas, inclusive Accepted; filtros por projeto/status e paginação (default 10, máximo 25)concept_whoamibootstrap: seus projetos, tamanho do catálogo e um mini-guiaconcept_project_listprojetos ativos por padrão; includeArchived:true inclui referências arquivadas. Nature/surfaces, updatedAt, isArchived, archivedAt e lifecycleNoteconcept_project_complianceo relatório que abre toda sessão: ok / behind:N / gap por patternconcept_project_suggestionspróximos passos: o que os irmãos provaram e este projeto nem avaliouconcept_catalog_searchbusca full-text paginada (kind, área, stack); results, total, hasMore, offset, limitconcept_catalog_getuma entry pelo slug — head ou versão histórica (imutável)concept_catalog_versionso changelog nativo: versões, change notes, autor, hashconcept_catalog_diffduas versões lado a lado — o agente lê a diferençaconcept_catalog_changeso que mudou nos standards desde uma dataconcept_hunt_queriesreceitas de detecção dos bug classes (rode os greps localmente)concept_drift_reporttodas as linhas atrasadas + o que mudou desde o pin, e os lotes por entry
escrita · key read_write 8 tools
concept_entry_set_favoriteprioridade compartilhada: estado desejado + expectedRevision; preserva referência e históricoconcept_pattern_assessment_reportinput (objeto JSON ou texto desse objeto): inspeção real por critério/superfície; requestId e expectedAssessmentId, escopo, ambiente, release, evidências e datas com fuso. Não inspecionado=unknown; correção append-onlyconcept_adoption_reportreporta adoção com pin + evidência — upsert idempotenteconcept_gap_reportregistra gap → vira work item (em projeto migrado, a story nasce no backlog daqui)concept_work_item_updatetransiciona work item e vincula à story realconcept_repin_batchfecha o sweep em lote — evidência obrigatória por linha, anterior preservadaconcept_cadence_reportfim de run REAL de segurança/legal/marketing: FULL exige evidenceRef; assessment v1 opcional com todos os checks do manifesto. expectedRevision obrigatório para marketing/resumo; delta preserva FULL, rearm posterior ao corte sobreviveconcept_cadence_correctBUG002: conserta âncora errada (não é um run) — anchorAt null devolve ao estado "never"; reason obrigatório
backlog · key read_write (US039 — projetos migrados) 7 tools
concept_story_nexta PRÓXIMA story pela régua do roadmap (InProgress > menor tier > rank)concept_story_getuma story pelo code (US084) — resumo + corpo markdown completoconcept_story_listo roadmap como dado: stories por tier/rank, com status e claimconcept_story_createcria story nova — código ocupado falha em qualquer status, sem sobrescreverconcept_story_updateedita story existente após story_get — substitui título/corpo sem histórico; código inexistente falhaconcept_story_transitiono ciclo com VOLTA: claim obrigatório; archived reabre com motivo (US043)concept_roadmap_reorderreescreve a ordenação: lista {code, tier} na ordem desejada
feedback · key read_write (US031 — o pedido do usuário no mapa) 5 tools
concept_feedback_ingestingere com UTC e dedupe por externalRef ou autor+texto em 60s; aceita entrySlug/storyCode e o pedido já nasce vinculado; devolve suggestions de entryconcept_feedback_lista fila cross-project, com o status ATUAL da story de cada vínculo + sugestão determinística da entryconcept_feedback_link_storyliga o pedido a uma story QUE JÁ EXISTE (N:M, idempotente; remove=true desfaz)concept_feedback_triageliga à entry/work item ou descarta com motivo obrigatório; linked exige vínculo realconcept_feedback_to_storya jornada principal: o pedido vira story no roadmap (ou proposta no inbox); avisa se um pedido parecido já tem destino
mesa · visão global do hub (US041) 2 tools
concept_hub_nexta MESA: a coisa mais importante do hub agora, com justificativa por itemconcept_focus_reordera ordem de FOCO dos projetos — entrada exclusiva do dono (pedido explícito)
canon · modo proposta (read_write propõe; o dono aprova) 7 tools
concept_entry_set_referencepropõe versão publicada com conformanceManifest como alvo: versionNo, expectedRevision e reason; não promove head automaticamenteconcept_entry_proposePROPÕE entry nova e metaJson opcional (auditManifest v1 validado); corpo e metadados passam juntos por /painel/canonconcept_entry_evolvePROPÕE versão nova; metaJson omitido preserva, {} limpa. Head só move após aprovação; anterior fica citávelconcept_entry_linkPROPÕE link tipado entre entries (supersedes, mitigates, gates…)concept_project_reportcria projeto; slug existente falha sem editar (ReadWrite + trusted)concept_project_set_archivearquiva/restaura com motivo e expectedUpdatedAt; preserva histórico e retira de story_next e Mesa. Leia project_list com includeArchived:true (ReadWrite + trusted)concept_project_update_classificationedita nature/surfaces após leitura, com expectedUpdatedAt; conflito falha sem sobrescrever (ReadWrite + trusted)

5 · Semântica que evita erro

  • →Versões são imutáveis. Evoluir cria versão nova e move o head — UPDATE/DELETE de versão não existem (bloqueados no banco).
  • →Upserts idempotentes. Re-reportar a mesma adoção/gap atualiza, não duplica. Pode re-rodar sem medo.
  • →Classificação de projetos. Leia concept_project_list antes de editar. concept_project_report só cria; concept_project_update_classification exige ReadWrite + trusted e o expectedUpdatedAt exato da leitura, inclusive null. Campo omitido preserva; nature:null e surfaces:[] limpam; surfaces:null é inválido. Conflito exige nova leitura. Nature aceita Application/Game/Content; surfaces aceita Web/Android/Ios/Desktop/Backend/Cli/Mcp. Ausência significa não informado, sem inferir stack ou mudar adoções.
  • →Busca paginada. concept_catalog_search retorna results, total, hasMore, offset e limit. Default 20 resultados (1–50), offset 0; parâmetros fora da faixa dão erro. Avance offset pelo número de resultados enquanto hasMore. Texto, kind, área e stack filtram total e results. Ordem: favoritos primeiro, atualização mais recente, desempate por id. Ausência numa página não é ausência no catálogo. Offset não é snapshot: alterações durante a navegação podem deslocar resultados.
  • →Pendências abertas. Use concept_work_item_list(projectSlug) ao começar: open inclui Proposed, Accepted e InProgress. status=all inclui Done/Rejected. Retorna items com nota completa, total, hasMore, offset e limit (1–25, default 10); avance offset pelos itens lidos enquanto hasMore. Ordem: mais antigos primeiro, desempate por id. O mesmo contrato está em GET /work-items/search.
  • →Feedback repetido. externalRef tem prioridade. Sem ele, mesmo autor conhecido + texto NFC idêntico em até 60s na origem reutiliza o item e preserva a data original e a triagem. Sem autor, não deduplica por conteúdo. A resposta informa deduplicated e deduplicationMode: external_ref, author_text_60s ou none_missing_author.
  • →Datas com fuso. receivedAt, runAt, rearmAt, anchorAt e expectedUpdatedAt aceitam ISO-8601 com Z ou offset (ex.: 2026-09-05T09:00:00-03:00), normalizado para UTC. Data inválida ou sem fuso dá erro com campo e exemplo. Omitir/null mantém o contrato de cada campo.
  • →Sanitização bloqueante. Unicode invisível (zero-width, bidi, tags) é rejeitado com erro explícito.
  • →Tudo auditado. Cada chamada autenticada vira audit_event. Escreva como quem assina.
  • →Perdido? concept_whoami retorna seus projetos e um mini-guia.

6 · Auditorias — contrato v1

O ledger contém a auditoria completa. O Concept guarda uma projeção verificável do último FULL.

concept_audit_list aceita projectSlug, kind, state, limit (1–50, default 20), offset e includeArchived. Tipos: audit_cadence, legal_cadence e marketing_cadence. Estados: unconfigured, never, overdue, rearm e ok. Retorna items, total, hasMore, offset, limit, states e projects. Linhas virtuais não criam relógios.

Copie revision para expectedRevision antes de reportar ou corrigir marketing ou evidência estruturada. Use new somente se a linha retornou new. Conflito exige releitura. Projetos arquivados são consulta histórica.

Propose/evolve aceitam metaJson como string JSON; omitir no evolve preserva, um objeto vazio limpa. O manifesto só cabe em Checklist e exige 1–100 IDs únicos com práticas e versões existentes no tenant.

{
  "auditManifest": {
    "schemaVersion": 1,
    "kind": "marketing_cadence",
    "criteria": [
      {
        "id": "M01",
        "practiceSlug": "business-growth/product-landing-page",
        "practiceVersion": 2,
        "description": "Oferta observável no recorte",
        "evidenceRule": "URL e observação datada da oferta real",
        "maxAgeDays": 30
      }
    ]
  }
}

Um FULL real pode incluir assessment no report, com todos os checks do manifesto. Exemplo de formato abaixo: substitua os valores pela evidência real; não execute como uma auditoria.

{
  "schemaVersion": 1,
  "kind": "marketing_cadence",
  "checklistSlug": "business-growth/marketing-audit-cadence",
  "checklistVersion": 1,
  "runAt": "2026-09-19T12:00:00Z",
  "scope": {
    "nature": "Application",
    "stage": "Early",
    "surfaces": [
      "Web"
    ],
    "market": "BR / pt-BR"
  },
  "evidenceRef": "docs/marketing-audit.md#full-exemplo",
  "evidenceHash": "SHA256_HEXADECIMAL_DO_RELATORIO_COMPLETO",
  "complete": true,
  "checks": [
    {
      "id": "M01",
      "practiceSlug": "business-growth/product-landing-page",
      "practiceVersion": 2,
      "result": "pass",
      "evidenceRef": "URL_OU_CAMINHO_REAL",
      "observedAt": "2026-09-19T11:30:00Z",
      "reason": null
    }
  ]
}

Schema 1, complete=true e todos os IDs são obrigatórios. Kind, runAt e evidenceRef coincidem com o report; natureza, estágio e superfícies coincidem com o projeto. Hash tem 64 caracteres hexadecimais (SHA-256). A API valida a estrutura; não busca nem atesta a fonte. Pass/fail exigem referência e data observada; unknown/na/pending exigem motivo; N/A também data. Datas não ultrapassam o corte. Não envie PII ou segredos.

C=pass, D=fail, U=unknown, N=na; A=C+D+U. Distância=D+U; avaliado=(C+D)/A; comprovado=C/A. A=0 ou aplicabilidade pendente suprimem percentuais. As contagens vêm do servidor. Versão, recorte, idade da evidência, prazo ou rearm podem tornar o FULL histórico.

DELTA preserva âncora e resumo FULL. FULL preserva rearm posterior ao corte. Correção invalida o resumo. Marketing rejeita score escalar; cadência mensal ou trimestral é uma decisão explícita. Configurar cadência não cria execução e não há scheduler de campanhas.

Create, evolve, link e maturity seguem a mesma curadoria: aprovação ligada cria proposta; desligada permite aplicação direta apenas por key ReadWrite + Trusted, sem bypass de sessão humana.

Padrões favoritos e prova por aplicativo

Estrela é prioridade compartilhada. Referência é uma versão publicada com checklist. Adoção e pin não comprovam conformidade. A consulta mostra a última observação registrada; o agente precisa inspecionar o ambiente autorizado antes de relatar resultados.

concept_entry_set_favorite recebe entrySlug, isFavorite e expectedRevision. concept_entry_set_reference recebe entrySlug, versionNo (null remove), expectedRevision e reason; passa pela curadoria de canon.

concept_pattern_conformance aceita favoritesOnly, q, area, projectSlug, nature, surface, status, entrySlug, includeArchived, environment, limit e offset. Default: favoritos, production, 20 linhas; máximo 50. Snapshot, totais, navegação, aplicabilidade e estados vêm do backend. Projetos sem adoção também aparecem.

Publique o manifesto no metaJson da versão: conformanceManifest com schemaVersion=1 e criteria (1–100). Cada critério tem id único, description, surfaces, natures, minStage, evidenceRule e maxAgeDays (1–366). Anexar arquivo e colar print são checks distintos.

concept_pattern_assessment_report recebe input como objeto JSON ou texto desse objeto, com projectSlug, entrySlug, referenceVersionNo, requestId, expectedAssessmentId (null na primeira), observedAt, scope (nature, stage, surfaces), environment, release, reportRef e checks.

Cada check contém id, surface, result, evidenceRef, observedAt, reason e storyCode opcional. Cubra todos os critérios × superfícies: pass/fail exigem prova e data; unknown/pending exigem motivo; na exige motivo e data. Datas com Z/offset. Não inspecionado fica unknown. Ambientes production, quality e code são separados. Nova release exige nova observação.

Use requestId estável para retry e releia expectedAssessmentId em conflito. Correções informam supersedesId e correctionReason, mantendo o original. Histórico: concept_pattern_assessment_history com entrySlug, projectSlug e environment, até 50 registros. Nunca envie segredos, mídia inline ou URLs assinadas. Nenhuma dessas ações renova auditorias, move pins ou abre histórias automaticamente.