ship — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited ship (Agent Skill) and scored it 96/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 1 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 1 flagged
The text {match} tells the agent to skip the normal "ask the user first" gate. Used adversarially it removes the human-in-the-loop check before destructive or sensitive actions, turning a normally-gated agent into a fire-and-forget executor.
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
You are in FULLY AUTONOMOUS MODE. Zero questions. Just build.
TASK: $ARGUMENTS
RULES:
=== PRE-BUILD: VALIDATION GATE ===
Before writing any feature code, validate the project foundation. This prevents wasting iterations on lint, platform, and config issues.
flutter analyze and dart fix --apply. Fix all errors/warnings.tsc --noEmit or the project's type-check command.dart:io imports in web-reachable code.flutter pub get or npm install.ghcr.io/org/image, not bare org/image)bash -n on all .sh scripts to catch syntax errorssed -i (needs '' on macOS), readlink -f (not on macOS), date flags$SCRIPT_DIR / path references still resolve correctly after any directory reorganizationFix 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:
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:
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 ===
=== ITERATION 2: MAKE IT SOLID ===
=== 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) ===
=== 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:
flutter build web / npm run build / framework equivalent. Must succeed.firebase hosting:channel:deploy preview-{branch}-{ts} --only hostingvercel --target previewwrangler pages deploy ... --branch preview-{ts}curl -I the destinations).firebase hosting:clone preview-... live or 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:
/readme to generate or update the project's README.md.=== OUTPUT ===
One short summary:
NEXT STEPS:
Recommended pipeline after /ship:
/qa to verify everything works end-to-end."/e2e to generate automated end-to-end test coverage."/iterate-review to harden with a focused review pass."/ux to audit accessibility, design standards, and usability."/polish for the full quality pipeline: /ux → /qa → /analyze."~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.