بنقرة واحدة
ship
Commit, verify, tag, and push with the repo's pre-flight gate suite (lint, type, drift gates, docs build)
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
القائمة
Commit, verify, tag, and push with the repo's pre-flight gate suite (lint, type, drift gates, docs build)
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
استنادا إلى تصنيف SOC المهني
Reconstruct Dazzle/HM judgement from stems before inventing structure
Reconstruct Dazzle/HM judgement from stems before inventing structure
Run all quality checks on modified files — the on-demand pre-ship quality gate
Use when authoring or revising trial.toml scenarios for dazzle qa trial — puts an LLM in the shoes of a real business user evaluating a Dazzle app. Use when the user asks to "set up qa trials", "write a trial scenario", "evaluate this app as a user", or mentions qualitative/trial/business-user testing. Also use when a trial report is sparse or unhelpful — the scenario itself is usually the root cause.
Use when writing or editing Dazzle .dsl files — syntax rules, the mistakes agents actually make, and pointers to the drift-gated references. Complements (never replaces) CLAUDE.md's DSL Quick Reference.
Use when the user wants to generate a stakeholder-facing English specification document (SPECIFICATION.md) from a Dazzle DSL project — for investors, business leaders, founders, or non-technical decision-makers. Reverses the usual DSL→app flow into DSL→prose.
| name | ship |
| description | Commit, verify, tag, and push with the repo's pre-flight gate suite (lint, type, drift gates, docs build) |
Commit all current changes and push to the remote. Follow these steps exactly.
Local ↔ CI concordance is documented in
docs/contributing/local-ci-concordance.md. The single runner is
scripts/ci_local.sh (Makefile: ci-fast / ci-core).
git status (never use -uall) and git diff --stat to understand what changed.Decide the tier from the ship arguments / intent:
| Situation | Tier | Command |
|---|---|---|
Default /ship, patch with no version bump | Tier 0 (ship-fast) | make ci-fast |
/ship minor, /ship major, or any commit that changes pyproject.toml version = | Tier 1 (ci-core) | make ci-core |
| Operator asked for maximum local confidence | Tier 1 | make ci-core |
# Tier 0 — default (~2–3 min, no DB)
make ci-fast
# → bash scripts/ci_local.sh tier0
# ruff check --fix + format
# mypy src/dazzle
# pytest tests/unit -m gate
# mkdocs build --strict
# Tier 1 — before release tags (~full non-e2e CI mirror)
make ci-core
# → bash scripts/ci_local.sh tier1
# uv sync --frozen (CI extras, Python 3.12)
# scripts/build_dist.py
# ruff check + format --check
# mypy src/dazzle
# CSS clip/raw-ramp + dazzle coverage --fail-on-uncovered
# bandit + pip-audit (hard-fail)
# JWT fuzz + shapes RBAC matrix
# pytest -n auto --dist loadgroup -m "not e2e"
# mkdocs build --strict
Do not re-expand these steps ad-hoc in the agent transcript — call the
Makefile / script so extras lists and command strings stay one source of truth
with .github/workflows/ci.yml. If you change CI, update scripts/ci_local.sh
constants in the same change.
mypy command is always mypy src/dazzle (same as CI type-check job). The
local↔CI divergence is installed extras, not flags: Tier 1 syncs the
type-check extras superset (dev,llm,mcp,mobile,postgres,pitch,i18n,viewport,perf,lsp).
Tier 0 may warn if the active interpreter ≠ 3.12 — for release tags, prefer
Tier 1.
Gate marker (pytest -m gate): every fast, DB-free structural gate must
carry pytestmark = pytest.mark.gate (see tests/unit/test_gate_marker_complete.py).
Ratchet failures → refactor or regenerate baseline (dazzle fitness code --write-baseline); never bypass.
Spec strict (only if [spec] strict = true in the project's dazzle.toml):
dazzle spec status --fail-on-strict
If tier0/tier1 or spec-strict fails, fix before committing. Do NOT ship red.
Tier 0 is not full GitHub CI: Postgres services, Playwright walks, guide-walk matrix, and multi-version python-tests still only run on Actions. See the concordance doc for Tier 2.
git add -A or git add .).git log --oneline -10).Co-Authored-By: line naming the agent — match the signature style visible in recent commits; harnesses that supply their own trailer automatically need nothing extra).git commit -m.pyproject.toml was modified in this commit by running git diff HEAD~1 HEAD -- pyproject.toml.version = "X.Y.Z" line changed, extract the new version and create a lightweight tag: git tag vX.Y.Z.make ci-core) in this session (or operator-confirmed) before git push origin vX.Y.Z.git push to push the current branch to origin.git push origin vX.Y.Z. This triggers release workflows (PyPI, Homebrew). Never git push origin --tags — a clone that still holds historically-pruned patch tags re-publishes ALL of them (the 2026-07-02 incident re-pushed 257 pruned v0.82–v0.87 tags; the prune-old-releases workflow had to be dispatched to sweep them).After a successful push, emit the fix-deployed signal so /improve lanes
re-verify rows the change may affect (the cross-lane contract in
improve.md names /ship as this signal's emitter — previously declared
but never wired, so lanes sat on stale verification state across releases):
python -c "
from dazzle.cli.runtime_impl.ux_cycle_signals import emit
emit(source='ship', kind='fix-deployed', payload={'sha': '$(git rev-parse --short HEAD)', 'version': 'vX.Y.Z'})
"
If step 4 pushed a published-release tag — one matching vX.Y.0, the same
endsWith('.0') condition the release workflows use to publish to PyPI/Homebrew —
additionally emit dazzle-updated (the cross-lane contract's "(external — releases)"
signal). This is what tells /improve a new framework version is live: lanes mark
affected rows for re-verification and the driver resets the explore budget
(new release = fresh explore territory):
python -c "
from dazzle.cli.runtime_impl.ux_cycle_signals import emit
emit(source='ship', kind='dazzle-updated', payload={'version': 'vX.Y.0', 'sha': '$(git rev-parse --short HEAD)'})
"
Both are best-effort — a failure here never blocks the ship; note it and continue.
git status one last time to confirm the worktree is clean.