specsfy-06-tdd-bdd
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseExecutar TDD orientado pelo BDD da especificação
执行基于规范BDD的TDD
Modo de interação
交互模式
Modo de interação: .
Antes de formular qualquer pergunta, leia e aplique o
de .
perguntasContrato de perguntas numeradas.specsfy/Spec.mdLeia o BDD como referência e converta o comportamento especificado em testes TDD
executáveis e evidência rastreável. O Gherkin ajuda o usuário e o agente a
entender contexto, ação e resultado; ele próprio não é uma suíte de testes.
交互模式:。
在提出任何问题之前,请阅读并应用中的。
问答式.specsfy/Spec.md编号问题协议以BDD为参考,将指定的行为转换为可执行的TDD测试和可追溯的证据。Gherkin帮助用户和Agent理解上下文、动作和结果;它本身不是测试套件。
Orquestrar a conversa
协调对话
Ao concluir esta etapa ou detectar trabalho de outra etapa, anuncie
e resolva-a
quando pertencer ao próprio escopo. Quando houver troca de responsabilidade,
anuncie e carregue imediatamente a skill de
destino, sem pedir confirmação nem repetir o comando. Continue na mesma
conversa. Depois de uma correção necessária a esta etapa, anuncie e retome-a imediatamente. Reavalie o estado após cada handoff para
evitar ciclos. Não peça confirmação para o handoff; ações sensíveis continuam
exigindo autorização específica.
Pendência detectada: <descrição> — ação: resolvendo nesta etapaTransição automática: $specsfy-06-tdd-bdd → $<destino> — motivo: <motivo> — resultado esperado: <resultado>Retomada automática: $<destino> → $specsfy-06-tdd-bdd — pendência resolvida: <resultado>完成此步骤或检测到其他步骤的工作时,请宣布,并在属于自身范围时进行解决。当需要移交责任时,请宣布,并立即加载目标Skill,无需请求确认或重复命令。继续同一对话。在完成此步骤所需的修正后,请宣布,并立即恢复执行。每次移交后重新评估状态以避免循环。移交无需请求确认;敏感操作仍需特定授权。
检测到待处理项:<描述> — 操作:在此步骤中解决自动转换:$specsfy-06-tdd-bdd → $<目标> — 原因:<原因> — 预期结果:<结果>自动恢复:$<目标> → $specsfy-06-tdd-bdd — 已解决待处理项:<结果>Escolher o modo
选择模式
- : antes da implementação, criar o próximo teste/scenario e provar RED sem escrever código de produção.
prepare - : executar RED → GREEN → REFACTOR para uma fatia explicitamente escolhida.
cycle - : executar suites e auditar rastreabilidade sem criar comportamento novo.
verify
Se o usuário não indicar o modo, use quando a seção 14 ainda não estiver em execução e quando houver uma tarefa ativa.
preparecycle- :在实现之前,创建下一个测试/场景,并在不编写生产代码的情况下验证RED状态。
prepare - :为明确选择的功能片段执行RED → GREEN → REFACTOR循环。
cycle - :执行测试套件并审核可追溯性,不创建新行为。
verify
如果用户未指定模式,当第14节尚未执行时使用,当存在活跃任务时使用。
preparecyclePreparar
准备阶段
- Leia , testes e configuração do projeto.
specs/<estado>/<NNNN>-<slug>/spec.md - Exija e
Formato: Specsfy/2.0. No modoDefinition Gate: Passed, useprepareeStatus: Defined; nos modosPlan Gate: Pendingecycle, useverifyouStatus: Planned.Implementing - Selecione uma fatia vertical pequena: um Gherkin e seus
AC.FR/NFR - Resolva o runner de testes pela stack antes de escrever testes:
- projeto PHP (ou
composer.json), inclusive PHP + Node: use Pest;artisan - projeto Node sem PHP: pergunte ao usuário qual runner adotar antes de instalar ou configurar; recomende Vitest por padrão;
- outra stack: preserve o runner de testes existente ou pergunte quando não houver decisão reproduzível.
- projeto PHP (
- Em Node, considere a decisão materializada quando expuser o script
package.json; não escolha nem instale dependência silenciosamente.test:tdd - Leia para escolher o nível mais baixo que ainda prova o comportamento.
references/test-levels.md
- 阅读、测试用例和项目配置。
specs/<状态>/<NNNN>-<slug>/spec.md - 要求遵循和
格式:Specsfy/2.0。在定义门:已通过模式下,使用prepare和状态:已定义;在计划门:待处理和cycle模式下,使用verify或状态:已计划。实现中 - 选择一个小的垂直功能片段:一个Gherkin(验收标准)及其
AC(功能需求/非功能需求)。FR/NFR - 在编写测试前根据技术栈确定测试运行器:
- PHP项目(或
composer.json),包括PHP + Node:使用Pest;artisan - 无PHP的Node项目:在安装或配置前询问用户采用哪种运行器;默认推荐Vitest;
- 其他技术栈:保留现有测试运行器,或在无可重现决策时询问用户。
- PHP项目(
- 在Node项目中,当暴露
package.json脚本时,视为已确定决策;不得静默选择或安装依赖。test:tdd - 阅读以选择仍能验证行为的最低测试级别。
references/test-levels.md
Usar o BDD para escrever TDD
利用BDD编写TDD测试
- Use o bloco Gherkin do em
ACcomo contrato de referência sem mudar seu significado.spec.md - Não crie, copie nem execute arquivos ou step definitions. Os termos Given/When/Then permanecem apenas na
.feature.spec.md - Em PHP, escreva o teste TDD com Pest em ou
tests/Feature/, no menor nível que prova o comportamento. Marque cada caso executável, imediatamente junto à sua definição, com:tests/Unit/
php
// SPECSFY: US-001 FR-001 AC-001- Em Node, depois da resposta do usuário, escreva o teste TDD no runner
escolhido e use .
SPECSFY: US-001 FR-001 AC-001 - Materialize no mínimo três casos TDD distintos para a feature inteira e para
cada ,
USeFR: caminho feliz, regra/variação crítica e falha ou limite material. Um único marcadorNFRcompartilhado pelo arquivo conta como um caso, mesmo que o arquivo contenha vários testes.SPECSFY: - Cubra cada com ao menos um caso TDD, sem multiplicar casos equivalentes.
AC - Escolha unidade, integração, contrato ou browser conforme a fronteira descrita pelo BDD; não crie uma segunda suíte apenas para rotulá-la como BDD.
- Não use mocks para remover justamente a fronteira que o cenário pretende provar.
- 将中
spec.md的Gherkin块作为参考协议,不得更改其含义。AC - 不得创建、复制或执行文件或步骤定义。Given/When/Then术语仅保留在
.feature中。spec.md - 在PHP中,使用Pest在或
tests/Feature/中编写TDD测试,选择能验证行为的最小级别。在每个可执行用例的定义旁立即标记:tests/Unit/
php
// SPECSFY: US-001 FR-001 AC-001- 在Node项目中,在用户回复后,使用选定的运行器编写TDD测试,并使用标记。
SPECSFY: US-001 FR-001 AC-001 - 为整个功能以及每个(用户故事)、
US和FR至少实现三个不同的TDD用例:正常路径、关键规则/变体、失败或边界情况。即使文件包含多个测试,一个共享的NFR标记也视为一个用例。SPECSFY: - 每个至少覆盖一个TDD用例,不得重复等效用例。
AC - 根据BDD描述的边界选择单元测试、集成测试、契约测试或浏览器测试;不得仅为标记为BDD而创建第二套测试套件。
- 不得使用mock移除场景旨在验证的边界。
Ciclo obrigatório
强制循环流程
RED
RED阶段
- Leia o BDD de referência e escreva o menor teste TDD que prova o e seus requisitos.
AC - Execute o teste TDD; nunca execute Gherkin.
- Confirme falha pelo comportamento ausente ou incorreto.
- Se falhar por sintaxe, fixture, importação ou ambiente, corrija o teste e repita.
- Se passar antes da mudança, o teste não demonstra o gap: refine-o ou prove que a funcionalidade já existe.
No modo , pare após o RED válido, registre evidência e conclua o
checklist da tarefa correspondente. Não
altere ; anuncie e retorne automaticamente para
, que valida todos os predecessores antes de promover a
spec para .
Registre a linha correspondente na tabela com o RED observado.
prepare[TEST]Plan Gate$specsfy-05-tasksPlannedEvidência RED-GREEN-REFACTOR- 阅读参考BDD,编写能验证及其需求的最小TDD测试。
AC - 执行TDD测试;绝不执行Gherkin。
- 确认因行为缺失或不正确导致测试失败。
- 如果因语法、 fixture、导入或环境问题失败,修正测试并重复执行。
- 如果在修改前测试通过,说明该测试未体现差距:优化测试或证明功能已存在。
在模式下,在验证有效的RED状态后停止,记录证据并完成对应任务的检查清单。不得修改;宣布并自动返回,后者会在将规范升级为前验证所有前置条件。
在中记录对应行及观察到的RED状态。
prepare[TEST]计划门$specsfy-05-tasks已计划RED-GREEN-REFACTOR证据表GREEN
GREEN阶段
No modo , escreva o mínimo de código de produção que satisfaça o cenário. Execute primeiro o teste focal e depois a suite relacionada. Não generalize antes de haver um exemplo que exija generalização.
Atualize a mesma linha de evidência com o GREEN observado.
cycle在模式下,编写满足场景需求的最少生产代码。先执行聚焦测试,再执行相关测试套件。在没有需要泛化的示例前不要进行泛化。
在同一证据行中更新观察到的GREEN状态。
cycleREFACTOR
REFACTOR阶段
Com tudo verde, elimine duplicação e melhore nomes/estrutura sem alterar comportamento. Execute novamente as suites relacionadas.
Registre o comando de regressão na seção 11 e a evidência na matriz da seção 12.
当所有测试通过时,消除重复代码并优化命名/结构,不改变行为。再次执行相关测试套件。
在第11节记录回归命令,在第12节的矩阵中记录证据。
Auditar rastreabilidade
审核可追溯性
Execute:
bash
node .agents/skills/specsfy-06-tdd-bdd/scripts/check_traceability.mjs specs/<estado>/<NNNN>-<slug>/spec.md .Trate como gap cada feature, , ou com menos de três casos TDD e
cada sem ao menos um caso. Para verificado manualmente ou por
observabilidade, cite a evidência sem dispensar os três casos automatizáveis;
quando necessário, ajuste sem remover IDs aplicáveis.
Em specs com , acrescente para exigir
.
Durante execução, mantenha e atualize o
da seção 13. Use somente quando não houver
gap obrigatório, todas as tarefas estiverem concluídas e a Definition of Done
estiver comprovada.
USFRNFRACNFR--kindsEvidence Contract: 1--full-chainUS/FR/NFR/AC → teste → tarefa → evidênciaDelivery Gate: In ProgressGate do Ato III — EntregaPassed执行:
bash
node .agents/skills/specsfy-06-tdd-bdd/scripts/check_traceability.mjs specs/<estado>/<NNNN>-<slug>/spec.md .将每个少于三个TDD用例的功能、、或,以及每个没有至少一个用例的视为差距。对于手动验证或通过可观测性验证的,需引用证据,但不得免除三个可自动化的用例;必要时调整参数,但不得移除适用的ID。
对于的规范,添加参数以要求的完整链路。
执行期间,保持并更新第13节的。仅当没有强制差距、所有任务已完成且完成定义已验证时,才使用。
USFRNFRACNFR--kinds证据契约:1--full-chainUS/FR/NFR/AC → 测试 → 任务 → 证据交付门:进行中第三阶段交付门已通过Disciplina sob pressão
压力下的纪律要求
| Tentação | Regra |
|---|---|
| “É uma mudança pequena.” | Mudanças pequenas recebem testes pequenos; tamanho não substitui RED. |
| “O código já está pronto.” | Escreva um teste de caracterização; não altere produção para fabricar RED. Para comportamento novo, escolha um caso ainda não atendido. |
| “O prazo permite pular RED.” | Sem falha observada não há prova de que o teste protege o requisito. |
| “O líder autorizou.” | Autoridade pode mudar escopo, não transformar ausência de evidência em TDD. |
| “Testar depois é equivalente.” | Test-first guia o contrato e prova sensibilidade antes da implementação. |
Em uma tarefa de teste, atualize , , , e conforme cada etapa acontecer. Não marque o pai como concluído sem arquivo, marcador, RED válido, comando/evidência e revisão do processo.
Não escreva código de produção antes que o predecessor TDD informado pelo BDD
da mesma fatia esteja concluído e com RED registrado na spec.
PREPEXECUTEVERIFYEVIDENCEIMPROVE| 诱惑 | 规则 |
|---|---|
| “这只是一个小改动。” | 小改动对应小测试;改动大小不能替代RED阶段。 |
| “代码已经准备好了。” | 编写特性测试;不得修改生产代码来制造RED状态。对于新行为,选择尚未满足的用例。 |
| “时间紧迫,可以跳过RED阶段。” | 未观察到失败则无法证明测试能保护需求。 |
| “领导已经批准了。” | 权限可以改变范围,但不能将缺乏证据的情况视为TDD。 |
| “事后测试是等效的。” | 测试先行指导契约,并在实现前验证敏感性。 |
在测试任务中,根据每个步骤的执行情况更新、、、和状态。没有文件、标记、有效的RED状态、命令/证据和流程审核,不得标记父任务为已完成。
在同一功能片段的BDD指定的前置TDD测试完成并在规范中记录RED状态之前,不得编写生产代码。
PREPEXECUTEVERIFYEVIDENCEIMPROVEAuditar QA
QA审核
Depois de executar os runners pertencentes ao repositório, registre ou
a falha na coluna Evidência da seção 12 e audite:
Passedbash
node .agents/skills/specsfy-06-tdd-bdd/scripts/verify_acceptance.mjs \
specs/<estado>/<NNNN>-<slug>/spec.md .O auditor não executa comandos extraídos de Markdown. AC manual exige método,
responsável e evidência; AC sem resultado impede .
Quando houver atestação do runner, repita com : o auditor
exige exatamente o check aprovado, detail JSON válido e
cobertura de todos os ACs. Texto isolado não substitui essa prova.
Delivery Gate: Passed--attestation PATHacceptance:<slug>Passed执行仓库所属的测试运行器后,在第12节的证据列中记录或失败信息,并执行审核:
已通过bash
node .agents/skills/specsfy-06-tdd-bdd/scripts/verify_acceptance.mjs \
specs/<estado>/<NNNN>-<slug>/spec.md .审核器不会执行从Markdown中提取的命令。手动AC需要方法、负责人和证据;无结果的AC会阻碍。
当有运行器证明时,添加参数重复执行:审核器要求完全匹配已批准的检查、有效的详细JSON以及覆盖所有AC。单独的文本不能替代此证明。
交付门:已通过--attestation PATHacceptance:<slug>已通过Relatar evidência
报告证据
Informe a fatia, IDs cobertos, arquivo do teste, comando RED, causa da falha, comando GREEN quando aplicável, suite de regressão e gaps de rastreabilidade.
报告功能片段、覆盖的ID、测试文件、RED命令、失败原因(如适用)、GREEN命令、回归测试套件和可追溯性差距。
Especialistas sob demanda
按需专家支持
Leia references/specialists.md quando o runner,
boundary ou oráculo de teste for específico de uma tecnologia. O especialista
complementa; esta skill preserva RED/GREEN e rastreabilidade.
当测试运行器、边界或测试预言机属于特定技术时,请阅读references/specialists.md。专家仅提供补充支持;本Skill需保留RED/GREEN流程和可追溯性。