Skip to main content

implement-feature

Executes a pre-written LLD by reading the target repo's service cards for coding conventions, then writing all files specified in the LLD. Supports backend-only, UI-only, or full-stack generation via an optional mode argument. The LLD defines WHAT to build; the service cards define HOW to write it.

Informações da origem

Repositório
adobe/adobe-commerce-partnerships-ai-kit
Última atividade na origem
26 de junho de 2026 às 06:14
Idioma detectado do SKILL.md
inglês
Estrelas
1
Forks
5

Opções de instalação

Por padrão, está selecionado o prompt que primeiro revisa a origem. Você pode mudar para um comando direto ou baixar uma cópia local.

Revise os arquivos de origem

Leia o SKILL.md e os arquivos complementares exibidos pelo SkillsMP antes de decidir se vai instalar.

Exibindo SKILL.md

SKILL.md
Instruções da origem · Visualização somente leitura
name
implement-feature
description
Executes a pre-written LLD by reading the target repo's service cards for coding conventions, then writing all files specified in the LLD. Supports backend-only, UI-only, or full-stack generation via an optional mode argument. The LLD defines WHAT to build; the service cards define HOW to write it.
# implement-feature Execute a feature LLD — generate all specified files using the target repo's own coding conventions. --- ## Input ``` <featureName> <targetRepoPath> [--mode=both|backend|ui] [--use-reference-files] ``` | Argument | Required | Description | |----------|----------|-------------| | `featureName` | Yes | Kebab-case feature name (e.g. `flexible-discounts`). Used to locate LLD and service card files. | | `targetRepoPath` | Yes | Absolute path to the target repo. Code is written here. | | `--mode` | No | `--mode=both` (default) — backend + UI + wiring check. `--mode=backend` — backend only. `--mode=ui` — UI only. Named flag; can appear in any position after `targetRepoPath`. | | `--use-reference-files` | No | When set, load LLDs and service cards from the kit repo's pre-approved reference location instead of the target repo. Use when the target repo does not yet have generated artifacts. | **Derived paths:** | Resource | Default path | Path when `--use-reference-files` | |----------|-------------|-----------------------------------| | Backend LLD | `<targetRepoPath>/docs/ai-kit/LLD/backend/<featureName>-lld.md` | `feature-specs/<featureName>/reference-files/LLD/backend/<featureName>-lld.md` | | UI LLD | `<targetRepoPath>/docs/ai-kit/LLD/ui/<featureName>-lld.md` | `feature-specs/<featureName>/reference-files/LLD/ui/<featureName>-lld.md` | | Backend service cards | `<targetRepoPath>/docs/ai-kit/service-cards/backend/` | `feature-specs/<featureName>/reference-files/service-cards/backend/` | | UI service cards | `<targetRepoPath>/docs/ai-kit/service-cards/ui/` | `feature-specs/<featureName>/reference-files/service-cards/ui/` | If a LLD filename doesn't exactly match `<featureName>-lld.md`, search the directory for `*<featureName>*-lld.md` and use the match. When `--use-reference-files` is set, log: `Using pre-approved reference files from kit repo: feature-specs/<featureName>/reference-files/` If a required LLD does not exist, stop and tell the user. Do not generate the LLD — run `apply-api-spec` and/or `apply-experience-card` first. --- ## Phase 1 — Load reference material | File | Load when | Path | |------|-----------|------| | Experience card | always | `feature-specs/<featureName>/experience-card/` — search for `*.md` | | Backend LLD | always — UI fetch hooks must match backend endpoint URLs, request shapes, and response schemas exactly | derived path (see Input section) | | UI LLD | `--mode=both` or `--mode=ui` | derived path (see Input section) | | Backend service cards (`CODE_PATTERNS.md`, `CONNECTORS.md`, `MODULE_INDEX.md`, `CONTRACTS.md`) | `--mode=both` or `--mode=backend` | derived path (see Input section) | | UI service cards (`UI_CODE_PATTERNS.md`, `DATA_LAYER.md`, `STATE_MANAGEMENT.md`, `ROUTES.md`, `UI_MODULE_INDEX.md`) | `--mode=both` or `--mode=ui` | derived path (see Input section) | From the experience card, extract: every user-facing screen and surface, all acceptance criteria, every user interaction and its expected outcome, and all loading / error / empty states described. From each LLD, extract the complete file manifest from the **Change Summary (§3)** overview table — every row is one file to CREATE or MODIFY. The **named subsection** for each file (e.g. `### path/to/file — CREATE`) is the complete, self-contained implementation spec — it contains everything an engineer needs without reading any other section. Also read **§2 Data Flow** to understand how files connect end-to-end. --- ## Phase 2 — Generate backend code **Skip if `--mode=ui`.** Read the **Change Summary table (§3)** of the backend LLD — this is the authoritative file manifest. Every row is one file to CREATE or MODIFY. **Execution order:** process files in dependency order — lower-level layers (data schemas, models) before the layers that import them (business logic, handlers, routes). Derive the correct order for this project's stack from `CODE_PATTERNS.md` and the Layer values in the Change Summary table. For each file: - The **named subsection** for this file in §3 is the complete implementation spec — read every bullet, table, and code block and implement exactly what it states - Cross-reference **§2 Data Flow** to understand how this file fits into the end-to-end call chain - Apply the patterns from backend service cards that match its layer type Apply these rules for every file: 1. **Naming and location** — follow `CODE_PATTERNS.md` naming conventions and directory layout exactly. 2. **MODIFY files** — read the existing file first; add only what the LLD specifies; do not refactor existing code. 3. **CREATE files** — match the file structure pattern from `CODE_PATTERNS.md` for that layer type. 4. **Auth and outbound calls** — use the exact auth header pattern, HTTP client, and error handling posture from `CONNECTORS.md`. 5. **Error handling** — use the project's error type and throw pattern from `CODE_PATTERNS.md §Error Handling`. 6. **Validation** — apply the validation approach (library, invocation point) from `CODE_PATTERNS.md §Validation`. 7. **Constants** — follow the naming and object structure convention from `CODE_PATTERNS.md §Constants`. 8. **Reuse** — import existing schemas, utilities, or helpers identified in `MODULE_INDEX.md` rather than re-implementing them. Write exactly what the LLD specifies — no extra fields, no extra error cases, no refactoring of surrounding code. --- ## Phase 3 — Generate UI code **Skip if `--mode=backend`.** Read the **Change Summary table (§3)** of the UI LLD — this is the authoritative file manifest. Every row is one file to CREATE or MODIFY. **Execution order:** process files in dependency order — shared utilities and data-fetching layers before the components that consume them, state stores before the components that read them. Derive the correct order for this project's stack from `UI_CODE_PATTERNS.md` and the Layer values in the Change Summary table. For each file: - The **named subsection** for this file in §3 is the complete implementation spec — read every bullet, table, and code block and implement exactly what it states - Cross-reference **§2 Data Flow** to understand how this file connects to other files and to the backend - Apply the patterns from UI service cards that match its layer type Apply these rules for every file: 1. **Naming and location** — follow `UI_CODE_PATTERNS.md` naming conventions and directory layout exactly. 2. **MODIFY files** — read the existing file first; add only what the LLD specifies; do not refactor existing code. 3. **CREATE files** — match the file structure pattern from `UI_CODE_PATTERNS.md` for that layer type. 4. **Data fetch files** — use the exact fetch pattern from `DATA_LAYER.md`: auth injection, cache key format, dependency guard, cache freshness, error surface. Endpoint, request shape, and response shape come verbatim from the **Change Required column** of the hook's §3 row and from the backend LLD — do not invent contracts. 5. **Auth and session** — read auth token, org ID, and other session values using the pattern from `STATE_MANAGEMENT.md` and `DATA_LAYER.md §Auth Token Injection`. 6. **Route / page files** — follow the page structure pattern from `UI_CODE_PATTERNS.md`. Auth guard, layout wrapper, and navigation patterns come from `ROUTES.md`. 7. **Component files** — implement the props interface, visual spec, all states (loading / error / empty / happy path), and interactions exactly as the **Change Required column** of the component's §3 row specifies. Design system imports follow the pattern in `UI_CODE_PATTERNS.md`. 8. **Style files** — semantic class names only; values from the LLD's visual spec; follow the file naming convention in `UI_CODE_PATTERNS.md`. 9. **Utility / type files** — implement exactly the functions, types, and constants listed in the **Change Required column** of the file's §3 row. Match the existing file's naming and export style. 10. **State store files** — follow the existing store pattern from `STATE_MANAGEMENT.md`; add only the fields specified in the **Change Required column** of the file's §3 row. 11. **Reuse** — import existing components, hooks, and utilities identified in `UI_MODULE_INDEX.md` rather than re-implementing them. Write exactly what the LLD specifies — no extra props, no extra states, no refactoring of surrounding code. --- ## Phase 4 — Wiring check **Skip if `--mode=backend` or `--mode=ui`.** ### 4a — Technical wiring For each data flow in UI LLD §2 (Data Flow), verify: - [ ] Data fetch unit endpoint URL matches the server handler path exactly - [ ] Every query parameter the server handler requires — including any dispatch or routing params (e.g. `type`, `action`) — is present in the request sent from the UI; compare the server handler's full param list against what the UI actually sends - [ ] Request fields sent from the UI match what the server handler accepts - [ ] Response fields accessed in the UI match what the server handler returns - [ ] All required auth/session params are forwarded on every call that needs them - [ ] Navigation targets exist as page files and receive the correct params - [ ] Every backend LLD operation that the UI calls has been implemented ### 4b — Experience card validation For each acceptance criterion and user-facing surface in the experience card, verify the implementation satisfies it: - [ ] Every screen or surface described in the experience card has a corresponding route or component in the implementation - [ ] Every user interaction described (click, submit, navigate) has a corresponding event handler wired to the right action - [ ] Every loading state described is rendered while the relevant fetch is in flight - [ ] Every error state described is rendered when the relevant fetch or mutation fails - [ ] Every empty state described is rendered when data is absent - [ ] Every acceptance criterion from the experience card is satisfied by at least one implemented component, hook, or route — flag any that are not covered Fix every mismatch before writing the report. --- ## Phase 5 — Report ``` ✅ Feature implemented: <featureName> [--mode=both | backend | ui] Backend files: (omit if --mode=ui) Created: <list> Modified: <list> UI files: (omit if --mode=backend) Created: <list> Modified: <list> Reuse applied: <component / hook / schema> imported from <file> Wiring verified: (omit if --mode=backend or --mode=ui) ✓ Endpoint URLs ✓ All query params sent from UI to server (including dispatch/routing params) ✓ Auth/session param forwarding ✓ Request/response shapes ✓ Navigation params Experience card coverage: (omit if --mode=backend or --mode=ui) ✓ <N> acceptance criteria satisfied ⚠️ <list any criteria not fully covered, or "none"> ⚠️ Design decisions applied: - <decision from LLD>: <how it was implemented> ```
Ver no GitHub