본문으로 건너뛰기
cccskills
무료GitHub에 공개

feature-workflow

Phased workflow for delivering a Drupal feature or non-trivial change: plan, implement, review, test, finalize. Use when building a new custom module, adding a route/form/plugin, changing entity structure or schema, or any task touching more than a couple of files. Do NOT use for typo fixes, CSS tweaks, or single-line changes — use the tiny-fix skill instead. Each phase has an exit condition; do not move to the next phase until it is met.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

설치 방법 보기

포함된 파일(1)

  • SKILL.md5.0 KB

SKILL.md(원문)

설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.

Feature Workflow

A gated, phased procedure for non-trivial Drupal development tasks. The goal is that no step is skipped and no task is declared done without evidence (passing checks, exported config, green tests).

When this activates

  • Building or extending a custom module or theme
  • Adding routes, forms, controllers, services, or plugins
  • Changing entity structure, fields, or database schema
  • Any change spanning multiple files or subsystems

Task classification (do this first)

Before starting, classify the task and adjust rigor:

ClassSignalRigor
tiny-fixTypo, comment, CSS tweak, single-line changeStop — use the tiny-fix skill instead
standardNew feature, refactor, multi-file changeAll phases below
security-sensitiveTouches routing, forms, user input, DB queries, permissions, file handlingAll phases below + mandatory security pass in Phase 3
schema-touchingChanges entity definitions, fields, or DB schemaAll phases below + update hook requirement in Phase 2

Phase 1 — Plan

  1. Restate the requirement in one or two sentences. If ambiguous, ask before coding.
  2. List the files and Drupal subsystems that will change (routing, services, config schema, hooks, plugins).
  3. Identify config entities the change will create or modify — these must be exported before the task is done.
  4. For multisite codebases: list every site that shares the affected module and note the impact.

Exit condition: a short written plan exists in the conversation. No code yet.

Phase 2 — Implement

  1. Follow Drupal 11 coding standards. If the drupal-module-development skill (drupal-dev-tools plugin) is available, apply it; otherwise follow core conventions: dependency injection over \Drupal:: static calls in OOP code, typed config schema for new config, declare(strict_types=1) where the codebase uses it.
  2. Schema-touching tasks: every entity/field/schema change ships with a matching hook_update_N() or hook_post_update_NAME() in the same changeset. An update hook must be idempotent.
  3. New config objects get a config/schema/*.schema.yml entry.
  4. Keep scope: do not refactor code the task did not ask for. Note improvement opportunities instead of applying them.

Exit condition: the change is complete, drush cr succeeds, and the site loads without new PHP errors in the log (drush watchdog:show --severity=Error).

Phase 3 — Review

  1. Run coding standards and static analysis if available in the project:
    phpcs --standard=Drupal,DrupalPractice web/modules/custom/MODULE
    phpstan analyse web/modules/custom/MODULE
    
  2. If the /drupal-dev-tools:drupal audit command is installed, run it on the changed module.
  3. Security-sensitive tasks: if the owasp-asvs skill (security-tools plugin) is available, walk the relevant checklist sections (V1 encoding/sanitization at minimum). If it is not installed, verify manually: parameterized queries only, Xss::filter() on user-supplied markup, access checks on every new route, CSRF protection on state-changing GET routes.

Exit condition: phpcs and phpstan pass (or their absence is noted), and for security-sensitive tasks the security pass is documented in the conversation.

Phase 4 — Test

  1. Run existing tests for the affected module: phpunit (via DDEV: ddev exec phpunit ...).
  2. New behavior gets at least one kernel or functional test when the project has a test suite. If the project has no test infrastructure, state this explicitly instead of silently skipping.
  3. Manually verify the acceptance criteria from Phase 1.

Exit condition: tests pass, or the absence of a test suite is explicitly recorded.

Phase 5 — Finalize

  1. Export configuration: drush cex — review the diff; only intended changes may be present.
  2. Stage the complete changeset: code + update hooks + exported config + tests together.
  3. Write a commit message describing what and why. Follow the project's convention (e.g. conventional commits).
  4. Summarize: what changed, what evidence exists (checks run, tests passed), and any follow-ups noted in Phase 2.

Exit condition: config export is clean, changeset is coherent, summary delivered.

Hard rules

  • Never claim a phase is complete without the evidence its exit condition requires.
  • Never skip Phase 3 for security-sensitive tasks.
  • Never modify production databases or run destructive drush commands (sql-drop, pmu, entity:delete) as part of this workflow without explicit user confirmation.

리뷰

아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.

댓글

로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.

아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.

보내면 바로 공개됩니다. 이메일 주소나 전화번호 같은 개인 정보는 쓰지 마세요. URL은 2개까지입니다.

0 / 1,000자

이 양식은 reCAPTCHA로 보호되며 Google 개인정보처리방침 및 서비스 약관이 적용됩니다.

같은 저장소의 스킬

Safe deployment workflow for Drupal 10/11 sites: pre-flight checks, backup, the correct update sequence (composer install, database updates, config import, cache rebuild), verification, and rollback plan. Use when deploying to any environment, releasing to production, or when the user asks to "push changes live", "update the server", or run a release. Also use for multisite releases where each site needs its own database update pass.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

siva01c/claude-plugins162026년 9월 26일 업데이트

Use this skill when authoring or editing Docker Compose files (compose.yaml / docker-compose.yml), running multi-container stacks, or containerizing a Drupal/PHP application — e.g. "set up a local Drupal stack with nginx and MariaDB", "add Redis to my compose file", "why won't my containers start", "split dev and prod compose configuration". Also trigger for compose commands (up, down, logs, exec, watch) and healthcheck/dependency issues between services.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

siva01c/claude-plugins162026년 9월 26일 업데이트

Use this skill when running local AI models with Docker Model Runner — the `docker model` CLI — e.g. "run an LLM locally with Docker", "pull a model from the ai/ namespace", "connect my app to a local model", "use a local model as backend for the Drupal AI module", or when wiring the `models:` top-level element into a compose.yaml. Covers pulling/running models, OpenAI-compatible endpoints, and Compose integration.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

siva01c/claude-plugins162026년 9월 26일 업데이트

Use for operational Drupal 11 workflows in DDEV environments, including safe updates, backup-first procedures, and troubleshooting commands.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

siva01c/claude-plugins162026년 9월 26일 업데이트

Use when creating or extending Drupal 11 custom modules, including scaffolding, service architecture, and dependency injection best practices.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

siva01c/claude-plugins162026년 9월 26일 업데이트

Use when auditing Drupal 11 custom modules/themes for security issues such as unsafe input handling, XSS risks, SQL injection, and access control gaps.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

siva01c/claude-plugins162026년 9월 26일 업데이트

siva01c의 스킬 모두 보기

이 스킬의 문제 신고