plano-de-implementacao-ad-hoc

Transforma um plano aproximado em artefatos prontos para implementar-commit. Permite revisão rigorosa durante a implementação.

O que é plano-de-implementacao-ad-hoc?

Esta skill oferece um caminho rápido para transformar uma ideia ou plano aproximado em artefatos prontos para o pipeline 'implementar-commit' (implement-commit). Ela é projetada para cenários onde o recurso é bem compreendido e não requer iteração extensa de design, permitindo que o desenvolvedor pule a cadeia completa de 'propor-*' (propose-*) e vá diretamente para a implementação orientada a testes. A skill atua como um roteador mecânico que coordena subagentes especializados: primeiro, um subagente de design cria um design.md mínimo (apenas visão geral, tabela de restrições críticas e estrutura de módulos); em seguida, um subagente de plano de teste gera um test-plan.md mínimo (apenas tabelas de cobertura de requisitos e verificação de restrições); depois, um subagente de plano de implementação cria o arquivo implementation-plan.toml completo; e, por fim, um verificador confirma a consistência das referências cruzadas entre todos os artefatos. Suporta as plataformas Claude Code, Cursor e Codex, e seu uso requer um espaço de trabalho conhecido, os arquivos a serem modificados e um plano aproximado aprovado pelo usuário.

Funciona com✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/cbgbt/bottlerocket-forest/tree/main/skills/ad-hoc-implementation-plan

Installed? Explore more Programação e Desenvolvimento skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

Perguntar na sua IA favorita

Abre um novo chat com esta habilidade de agente já pré-carregada.

Documentação

Plano de Implementação Ad-Hoc

Caminho rápido de uma ideia aproximada para artefatos prontos para implementar-commit. Troca completude da documentação por velocidade.

Quando Usar

  • Você tem um plano ou ideia aproximada discutida com o usuário
  • Você deseja a verificação TDD do implementar-commit sem a cadeia completa de propor-*
  • O recurso é bem compreendido o suficiente para pular iteração extensa de design

Pré-requisitos

  • Plano aproximado aprovado pelo usuário (pode estar na conversa, em markdown, ou modelo mental)
  • Caminho do espaço de trabalho conhecido
  • Arquivos a serem modificados conhecidos

Papel do Orquestrador

Você é um ROTEADOR MECÂNICO. Você NÃO pensa sobre o recurso. Seu trabalho:

  1. Reunir informações mínimas necessárias do usuário
  2. Criar estrutura de diretório do recurso
  3. Gerar subagentes com skills apropriadas como contexto
  4. Passar saídas entre as fases
  5. Verificar referências cruzadas

Configuração

from pydantic import BaseModel
from pathlib import Path
import os

class GatherResult(BaseModel):
    feature_name: str
    feature_id: str  # formato NNNN
    workspace: str
    files_to_modify: list[str]
    constraints: list[str]
    test_names: list[str]
    rough_plan_summary: str

class PhaseResult(BaseModel):
    success: bool
    artifact_path: str
    errors: list[str]

# Caminhos das skills para contexto do subagente
skills = {
    "design": "skills/propose-feature-design/SKILL.md",
    "test_plan": "skills/propose-feature-test-plan/SKILL.md",
    "impl_plan": "skills/propose-implementation-plan/SKILL.md",
}

# Guias de estilo (se disponíveis)
style_guides = [
    "docs/style/rust-design.md",
    "docs/style/rust-test.md",
    "docs/style/rust-impl.md",
]

Fase 0: Reunir

Reunir interativamente ou inferir do plano aproximado:

# Se ainda não for conhecido, pergunte ao usuário:
# 1. Nome do recurso → cria docs/features/NNNN-nome/
# 2. Arquivos a modificar → commits[].files
# 3. Restrições principais → entradas da tabela CC
# 4. Nomes dos testes → test-plan + commits[].tests

# Determinar próximo ID do recurso
existing = list(Path("docs/features").glob("[0-9][0-9][0-9][0-9]-*"))
next_id = f"{len(existing):04d}"

feature_dir = f"docs/features/{next_id}-{feature_name}"
os.makedirs(feature_dir, exist_ok=True)

Fase 1: Design Mínimo

Gerar subagente com a skill de design de recurso, mas instruir para saída MÍNIMA.

result = spawn(
    prompt=draft_spawn_prompt(SkillDefined(
        "Criar design.md MÍNIMO seguindo o procedimento da skill. "
        "GERAR APENAS: Visão Geral (1 parágrafo), Tabela de Restrições Críticas, Estrutura de Módulos. "
        "PULAR: Diagramas de arquitetura, prosa de Mecanismos de Solução, Padrões de Design, Decisões de Design."
    )),
    context_files=[
        skills["design"],
        *[g for g in style_guides if exists(g)],
    ],
    context_data={
        "feature_dir": feature_dir,
        "feature_name": gathered.feature_name,
        "constraints": gathered.constraints,
        "files": gathered.files_to_modify,
        "rough_plan": gathered.rough_plan_summary,
        "minimal_mode": True,
    },
    response_model=PhaseResult,
    isolate_to=Cwd(gathered.workspace)
)

Fase 2: Plano de Teste Mínimo

Gerar subagente com a skill de plano de teste de recurso.

result = spawn(
    prompt=draft_spawn_prompt(SkillDefined(
        "Criar test-plan.md MÍNIMO seguindo o procedimento da skill. "
        "GERAR APENAS: Tabela de Cobertura de Requisitos, Tabela de Verificação de Restrições Críticas. "
        "PULAR: Notas detalhadas de implementação de teste, prosa de teste de integração."
    )),
    context_files=[
        skills["test_plan"],
        f"{feature_dir}/design.md",  # Da Fase 1
        *[g for g in style_guides if exists(g)],
    ],
    context_data={
        "feature_dir": feature_dir,
        "test_names": gathered.test_names,
        "constraints": gathered.constraints,
        "minimal_mode": True,
    },
    response_model=PhaseResult,
    isolate_to=Cwd(gathered.workspace)
)

Fase 3: Plano de Implementação

Gerar subagente com a skill de plano de implementação.

result = spawn(
    prompt=draft_spawn_prompt(SkillDefined(
        "Criar implementation-plan.toml seguindo o procedimento da skill. "
        "Todos os campos obrigatórios - sem modo mínimo. "
        "Garantir que tests[] corresponda exatamente aos nomes de teste do test-plan.md."
    )),
    context_files=[
        skills["impl_plan"],
        f"{feature_dir}/design.md",
        f"{feature_dir}/test-plan.md",
        *[g for g in style_guides if exists(g)],
    ],
    context_data={
        "feature_dir": feature_dir,
        "workspace": gathered.workspace,
        "files": gathered.files_to_modify,
        "rough_plan": gathered.rough_plan_summary,
    },
    response_model=PhaseResult,
    isolate_to=Cwd(gathered.workspace)
)

Fase 4: Verificar Referências Cruzadas

Gerar verificador para checar cobertura de testes.

class VerifyResult(BaseModel):
    valid: bool
    missing_tests: list[str]  # No test-plan mas não no impl-plan
    orphan_tests: list[str]   # No impl-plan mas não no test-plan
    missing_constraints: list[str]  # CC-N não cobertos

result = spawn(
    prompt=draft_spawn_prompt(AdHoc(
        intents=["Verificar se implementation-plan.toml é válido para implementar-commit"],
        context=["Verificar todas as referências cruzadas entre artefatos"],
        goal=Verify(constraints=[
            "Cada teste em test-plan.md aparece exatamente uma vez em commits[].tests",
            "Cada CC-N em design.md tem verificação em test-plan.md",
            "Todos os commits[].files existem ou serão criados",
            "TOML é analisado corretamente",
        ])
    )),
    context_files=[
        f"{feature_dir}/design.md",
        f"{feature_dir}/test-plan.md",
        f"{feature_dir}/implementation-plan.toml",
    ],
    response_model=VerifyResult,
    read_only=True
)

if not result.parsed.valid:
    # Retornar à Fase 3 com erros
    pass

Entrega

Uma vez verificado, os artefatos estão prontos para implementar-commit:

docs/features/NNNN-nome-do-recurso/
├── design.md              # Mínimo: Visão Geral + tabela CC + Estrutura de Módulos
├── test-plan.md           # Mínimo: Apenas tabelas de cobertura
└── implementation-plan.toml  # Completo: Todos os campos obrigatórios

Informe o usuário:

Artefatos prontos. Execute a skill implementar-commit para executar o pipeline TDD.

Individual skills in this repo

This repo contains 19 individual skills — each has its own dedicated page.

build-kit-locally

Build a kit and publish it to a locally hosted registry for development testing

build-variant-from-local-kits

Build a variant using locally published kits for development validation

deep-research

Create educational documents that build understanding progressively with citations

edit-spec-file

Edit Bottlerocket RPM spec files following project style conventions

fact-find

Quick lookup of specific facts about Bottlerocket with citations

idea-honing

Clarify feature ideas through iterative Q&A, recording insights to guide concept development

implement-commit

Implement commits from an implementation plan using a TDD pipeline

local-registry

Start and manage a local OCI registry for Bottlerocket kit development

prepare-core-kit-release

Prepare bottlerocket-core-kit for release by bumping version and updating changelog

propose-feature-concept

Create a new feature concept document to pitch the idea and explain the problem/solution

propose-feature-design

Create or update feature technical design document with architecture and implementation guidance

propose-feature-requirements

Create or update feature requirements specification using EARS notation with examples and appendices

propose-feature-test-plan

Create a test plan mapping EARS requirements and Critical Constraints to specific tests

propose-implementation-plan

Create an implementation plan with atomic commits that build toward a complete feature

review-code

Deep code review generating PR comments via principled question-driven analysis

review-scope

Verify code changes match intended scope and requirements without exceeding boundaries

review-style

Verify code follows project style guides without providing improvement suggestions

test-local-twoliter

Build and test local changes to twoliter before releasing

update-twoliter

Update all Bottlerocket repositories to a new Twoliter version

Habilidades Relacionadas