# Implement

> Implement features, fix bugs, and modify production source code in S3Mock. Use when asked to add functionality, change behavior, or modify source files in server/, integration-tests/, or testsupport/. Not for documentation-only or test-only changes. Orchestrates lint, test, and document skills as part of the complete workflow.

- Skill: `adobe/implement` (Agent Skill)
- Install (CLI): `npx skillmds@latest add adobe/implement`
- Raw SKILL.md: https://api.skillmd.com/api/skills/adobe/implement/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Docs & Writing
- Author: Adobe (https://skillmd.com/u/adobe)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/adobe/implement

---


# Implementation Skill

## Entry Criteria

Use for new functionality, bug fixes, or behavior changes in `server/`, `integration-tests/`, or `testsupport/`. Not for test-only or documentation-only changes — use the `test` or `document` skill instead.

## Before Starting

1. Read root `AGENTS.md` and the relevant module `AGENTS.md` (`server/AGENTS.md`, `integration-tests/AGENTS.md`, or `testsupport/AGENTS.md`).
2. For a new S3 operation, verify element names and behavior against the [AWS S3 API docs](https://docs.aws.amazon.com/AmazonS3/latest/API/Welcome.html).
3. Review existing similar implementations for patterns to follow.
4. If nearby code would benefit from cleanup before adding new code, invoke the **`refactor` skill** first.

## Execution Steps

1. For a new S3 operation, follow **[server/AGENTS.md § Implementation Flow](../../../server/AGENTS.md)** (DTO → Store → Service → Controller → IT) — do not skip layers or add logic in the wrong layer.
2. Update the copyright year in every modified file (`INVARIANTS.md`).
3. Invoke the **`lint` skill**.
4. Invoke the **`test` skill** to add or update unit and integration tests.
5. Invoke the **`document` skill** to update `CHANGELOG.md`, `README.md`, and `AGENTS.md` where applicable.

## Completion Criteria

- [ ] Code compiles (`make skip-docker`)
- [ ] Unit tests pass (`make test`); integration tests pass (`make integration-tests`)
- [ ] Lint gates pass (via `lint` skill)
- [ ] Copyright year updated in every modified file
- [ ] Tests added/updated (via `test` skill); docs updated (via `document` skill)

## Troubleshooting

- **Build fails**: confirm JDK 25 is active; run `make format` and fix remaining lint errors.
- **XML test failures**: a compile check is not sufficient (`INVARIANTS.md`) — run integration tests to confirm serialized output.
- **Docker fails**: use `make skip-docker` to isolate the build from Docker issues.

## Resources

- [`AGENTS.md`](../../../AGENTS.md), [`INVARIANTS.md`](../../../INVARIANTS.md)
- Relevant module `AGENTS.md` (`server/AGENTS.md`, `integration-tests/AGENTS.md`, or `testsupport/AGENTS.md`)

