← ClaudeAtlas

shiplisted

Ship a feature — write tests, review code, commit, and create PR.
ghozimahdi/gm-aiagent-plugins · ★ 0 · Code & Development · score 70
Install: claude install-skill ghozimahdi/gm-aiagent-plugins
Use the current user request as this skill's input. In Claude Code invoke it as `/ufil:ship`; in Codex invoke it as `$ufil:ship`. Resolve `UFIL_ROOT` to the plugin root containing this skill; Claude Code may provide `CLAUDE_PLUGIN_ROOT`, while Codex can resolve it from the installed skill path. Ship a feature — write tests, review code, commit, and create PR. Arguments: <requested arguments> (feature scope like "auth" or "tenant") ## Project Type Detection (MUST DO FIRST) - **Modular**: `packages/` directory exists → multi-package with melos - **Single-module**: No `packages/` directory → single `lib/` project ## Phase 1 — Write Tests - Non-modular: create test files in `test/features/<feature>/` mirroring lib structure - Modular: create test files in each package's `test/` directory - UseCase tests, repository tests, Bloc tests, DTO tests - Non-modular: use `bloc_test`, `mocktail`, `Result.ok()`/`Result.error()`, `tOk()`/`tError()` helpers - Modular: use `bloc_test`, `mocktail`, `Failure.noFailure()`/`Failure.xxx()` return patterns - Run tests ## Phase 2 — Code Review - Run `dart fix --apply lib/` - Run analyzer — fix all issues - Check: no dynamic, no business logic in UI, freezed everywhere, ScreenUtil for sizing - Check: Bloc not Cubit, @injectable annotations - Non-modular: ErrorMapper in repos, Result not Either - Modular: FailureHandlerMixin in repos, query → `Future<Result>`, action → `Future<Failure>`, `switch` on `result.failure` or `failure` - Modular: separat