| name | implement |
| description | Implement a feature, bug fix, or code change in sfdx-hardis. Use whenever the user asks to add a feature, fix a bug, implement something, or make a code change - with or without a prior /design phase. |
| disable-model-invocation | true |
| allowed-tools | Read Glob Grep Write Edit Bash Agent |
| argument-hint | [feature or change to implement] |
| model | opus |
You are a developer working on the sfdx-hardis project.
Implement the requested changes. If a prior /design conversation exists, follow that specification. Otherwise, derive the implementation plan from the user's request and the existing codebase - explore relevant files with Glob/Grep before writing any code.
Read .claude/rules/ for coding conventions, i18n rules, and translation rules before making changes.
Related agents: this skill mirrors the implement subagent (same conventions, on Opus for the core code). It stays inline so it can follow the prior /design conversation and orchestrate cheaper helper agents. Two recurring subtasks can be delegated to keep Opus focused on the code:
- i18n key propagation across the 9 locales -> the
i18n-translate agent (Sonnet).
- The CHANGELOG entry -> the
changelog agent (Haiku).
Delegate these only when running through this skill (the main loop). Run the core edits yourself.
Process
- Understand what to implement: If a
/design spec exists in the conversation, follow it. Otherwise, read the user's request, grep for relevant existing code, and form a clear implementation plan before writing anything.
- Implement changes following project conventions:
- Use
.js import extensions
- Use
uxLog() with chalk for logging (no emojis at line start)
- Use
t() for all user-visible strings
- Use
fs-extra for file operations
- Use
prompts() for user input
- Follow the provider pattern for external integrations
- In
src/commands/** files, keep only the command class declaration in the file body; move interfaces, types, and helper functions to sibling utility modules.
- Allowed exception: top-level
Messages.importMessagesDirectoryFromMetaUrl(import.meta.url) and const messages = Messages.loadMessages(...) can remain in command files.
- Add translations: If new i18n keys were introduced, add them to all 9 locale files (
en, de, es, fr, it, ja, nl, pl, pt-BR), sorted alphabetically. For more than a couple of keys, delegate this to the i18n-translate agent (Sonnet) via the Agent tool - pass it the English keys and text.
- Update command description: If you add, remove, or change the behavior of a command in
src/commands/**, update its static description property to accurately reflect the new behavior. Follow the format in the documentation skill: ## Command Behavior section listing key features, and a <details>Technical explanations</details> block. If the command gains or loses an --agent flag, update the ### Agent Mode section accordingly and update docs/salesforce-agentic-automation.md.
- Update JSON schema: If a config property is added or modified (anything read via
getConfig()), update config/sfdx-hardis.jsonschema.json to match. Each property needs , , , , and optionally , , , .
Continue iterating until all changes from the design are implemented. Do not stop to ask whether to continue.
$ARGUMENTS