Ship
Fast autonomous build loop -- 4 iterations max. Ship it, quick build, fast implementation, just build it, ship fast.From its SKILL.md
npx -y skills add tinh2/skills-hub-registry --skill shipAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
- 12 stars12 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
9.8 KB, ~2.3k tokens by cl100k_base, as published. Nobody here has run it
You are in FULLY AUTONOMOUS MODE. Zero questions. Just build.
TASK: $ARGUMENTS
RULES:
- Do NOT ask the user anything. Decide and move.
- If you're unsure between two approaches, pick the simpler one.
- If a dependency is missing, install it.
- If tests don't exist, write them.
- If something breaks, fix it — don't report it, fix it.
=== PRE-BUILD: VALIDATION GATE ===
Before writing any feature code, validate the project foundation. This prevents wasting iterations on lint, platform, and config issues.
-
STATIC ANALYSIS:
- Flutter: Run
flutter analyzeanddart fix --apply. Fix all errors/warnings. - Node.js: Run
tsc --noEmitor the project's type-check command. - Run the project's linter if configured.
- Flutter: Run
-
PLATFORM CHECKS (Flutter):
- Scan for unguarded
dart:ioimports in web-reachable code. - Verify Firebase init handles web vs native.
- Verify push notification setup is platform-guarded.
- Scan for unguarded
-
DEPENDENCY CHECK:
- Run
flutter pub getornpm install. - Fix version conflicts or missing packages.
- Run
-
RULES/CONFIG CHECK (if Firebase):
- Cross-check firestore.rules paths against collections used in code.
- Cross-check storage.rules against upload paths.
- Verify indexes exist for compound queries.
-
DOCKER/INFRASTRUCTURE CHECK (if docker-compose.yml or Dockerfile exists):
- Verify image references use full registry paths (e.g.,
ghcr.io/org/image, not bareorg/image) - Verify volume mounts: target paths exist in container, writable dirs have correct permissions
- Verify config files are mounted where the application actually reads them (check default paths, not just env vars)
- Run
bash -non all .sh scripts to catch syntax errors - Check for macOS vs Linux portability issues:
sed -i(needs '' on macOS),readlink -f(not on macOS),dateflags - Verify
$SCRIPT_DIR/ path references still resolve correctly after any directory reorganization
- Verify image references use full registry paths (e.g.,
Fix everything found. Commit: "chore: pre-build validation fixes" If clean, skip the commit and proceed.
=== PER-SCREEN QUALITY CHECKLIST (CRITICAL — learned from metrics analysis) ===
Every screen you create or modify MUST satisfy these before committing. Applying these at creation time prevents 46+ retrofit commits later:
a) A11Y: Every Icon/Image has semanticLabel. Every interactive element has
tooltip or Semantics label. All tap targets >= 48x48dp. Text uses theme styles.
b) DESIGN TOKENS: Colors from ColorScheme only (zero hardcoded Color(0xFF...)).
TextStyles from TextTheme only. Border radii from constants. Spacing on grid.
Fees/rates/limits from admin config, not hardcoded.
c) ASYNC SAFETY: Every async operation in StatefulWidget checks
if (!mounted) return; before calling setState.
d) SCALABILITY: Every Firestore query has .limit(). Batch writes for multi-doc
operations. Idempotent Cloud Function triggers.
e) STRUCTURAL HEALTH: If any file exceeds 500 lines, decompose it into
domain-specific modules. Do not let monolithic services grow across iterations.
MONOLITH DECOMPOSITION GATE (learned from Recipe AI recall — 69 modifications to 3 monolithic files):
Before adding ANY feature code to a file that exceeds 500 lines:
- STOP. Do not add the feature to the monolithic file.
- Extract the relevant section into its own file first (widget, service, mixin, module).
- Verify the extraction works (tests pass, build succeeds).
- Commit the extraction: "refactor: extract [component] from [monolith]"
- THEN implement the feature in the newly extracted file.
This is NOT optional. "Flag and plan" does not work — Recipe AI flagged analyze_screen.dart (6,732 lines) but never decomposed it, resulting in 21 modifications and a 62% fix-commit rate. Decompose BEFORE building, not after.
MINIMUM TEST REQUIREMENT (learned from Recipe AI — M8: Test Coverage = 0.00):
Every iteration that adds new functionality must include:
- Backend: At least 2 tests per new API endpoint (happy path + error case).
- Frontend: At least 1 widget/component test per new screen.
- If ZERO tests exist: set up test framework + 3-5 smoke tests first. A feature is not complete until its tests exist and pass.
=== CO-COMMIT RULES (CRITICAL — learned from recall analysis) ===
These rules apply to EVERY iteration. Violating them is the #1 source of rework:
a) FIRESTORE RULES: When adding or modifying a Firestore collection, update
firestore.rules in the SAME commit. Never commit feature code without rules.
b) SERVER-SIDE VALIDATION: When adding client-side business logic (credit checks,
eligibility, permissions), wire up server-side enforcement in the SAME iteration.
c) MODEL SERIALIZATION: When a Cloud Function writes new fields, update the
client model (fields, fromMap/toMap, copyWith) in the SAME commit.
d) CLOUD FUNCTION TRIGGERS: When changing document structure, verify triggers
still match in the same commit.
e) SHARED CONFIGURATION (learned from ollama-server recall — 3 rework commits from
duplicated defaults): When 2+ files reference the same configurable value (model
name, base URL, API key, timeout, port), extract to a shared config module.
Never hardcode the same default in multiple files. Create src/config.ts (or
equivalent) with all shared defaults and env variable overrides centralized.
Duplicated config is the #1 source of co-change rework in backend projects.
=== ITERATION 1: MAKE IT EXIST ===
- Build the simplest version that works.
- Co-commit Firestore rules, server validation, and model fields with features.
- Run tests/build to verify.
- Fix anything broken.
- Keep commits incremental — if touching 15+ files, split into logical commits.
- Commit: "feat: initial implementation"
=== ITERATION 2: MAKE IT SOLID ===
- Add error handling for real failure modes (not hypotheticals).
- Add or fix tests for core behavior.
- Verify all server-side validation is wired (not just client-side checks).
- Run full validation — fix until green.
- Commit: "fix: harden implementation"
=== ITERATION 3: DOMAIN ANALYSIS GATE ===
Run the /analyze skill scoped to everything you built or changed.
Include all analysis phases: consistency audit, server-side validation wiring,
model-to-Cloud-Function field completeness, Firebase rules, and platform compatibility.
Scope: All features/files touched across iterations 1-2. Depth: Full analysis (all phases of /analyze). Action: FIX everything rated Critical or Warning. Re-run affected checks to confirm. Commit: "fix: resolve domain analysis issues"
=== ITERATION 4: FINAL PASS (only if needed) ===
- Only run if the analysis gate found issues that required fixes.
- Re-validate everything — tests, build, re-check analysis.
- Clean up if genuinely messy, then done.
- Commit: "refactor: final cleanup"
=== POST-SHIP: WEB PREVIEW SMOKE GATE (CRITICAL — learned from deal-worthy recall 2026-05-22) ===
If the project has a deployable web target (Flutter web, Next.js, Vite, etc.) AND a configured preview channel (Firebase Hosting preview, Vercel preview, Cloudflare Pages preview), this gate runs BEFORE production promotion. It is not optional.
The 2026-04-25 deal-worthy hotfix cascade — Firebase init failure, missing /billing/success and /billing/cancel routes, broken Google Sign-In popup, and a dead-domain CTA — was 4 serial production hotfixes that a single preview-deploy smoke would have caught.
Procedure:
- Build for web:
flutter build web/npm run build/ framework equivalent. Must succeed. - Deploy to a preview channel (NOT production):
- Firebase:
firebase hosting:channel:deploy preview-{branch}-{ts} --only hosting - Vercel: triggered automatically on PRs; if running locally,
vercel --target preview - Cloudflare Pages:
wrangler pages deploy ... --branch preview-{ts}
- Firebase:
- Capture the preview URL.
- Smoke-check the preview URL — at minimum hit every route the build added or modified plus all auth/billing/CTA routes. For each:
- HTTP 200 (or expected redirect to login).
- No console errors on initial load (Firebase init, Stripe init, analytics init).
- Auth provider sign-in popups open (don't have to complete sign-in, just confirm the popup launches without "redirect_uri_mismatch" or "popup_closed_by_user" instantly).
- External CTAs in the build resolve (no dead domains —
curl -Ithe destinations).
- If ANY smoke fails, STOP. Do not promote to production. Fix the failures and re-run the gate. Commit fixes as: "fix: preview smoke failures before production promote".
- Only after smoke passes, promote:
firebase hosting:clone preview-... liveor merge to production branch.
This gate does NOT replace /qa or /bug-sweep — it is a thin pre-production smoke that catches the deploy-time class of failures (init, routes, popups, dead CTAs) that local builds don't surface.
=== POST-SHIP: DOCUMENTATION ===
After all iterations complete and validation passes:
- Run
/readmeto generate or update the project's README.md.
=== OUTPUT ===
One short summary:
## Shipped
- What: [what you built]
- Pre-validation: [issues found/fixed, or "clean"]
- Status: [tests/build passing or not]
- Analysis: [issues found / issues fixed / any remaining]
- Server-side validation: [all wired / gaps found and fixed]
- Firestore rules: [all collections covered / gaps found and fixed]
- Documentation: [README.md generated/updated]
- Caveats: [any known issues, or "none"]
NEXT STEPS:
Recommended pipeline after /ship:
- "Run
/qato verify everything works end-to-end." - "Run
/e2eto generate automated end-to-end test coverage." - "Run
/iterate-reviewto harden with a focused review pass." - "Run
/uxto audit accessibility, design standards, and usability." - "Run
/polishfor the full quality pipeline:/ux→/qa→/analyze."
What ships with it
Read from the repository
Just SKILL.md. No reference files, no scripts.