Ship — validate, commit, and push micro-commits
SkillDev toolsLint, build, test, verify specs, commit, and push — one micro-commit to remote. Validates the working tree, verifies spec alignment, and creates an atomic save point.
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the Ship — validate, commit, and push micro-commits skill
What this skill tells your AI
The instructions your AI receives, as published by villetakanen/asdlc-io in .agents/skills/ship/SKILL.md and read by ahel’s review.
Validate the working tree, verify spec alignment, create a micro-commit, and push it to the remote — a single atomic "save point."
Trigger
When a small, bounded unit of work is completed and needs to be shipped safely.
Goal
Ensure the codebase is green (lint, build, test, typecheck), verify that changed code stays aligned with its specs, create a well-formed micro-commit, and push to the current remote branch.
Boundaries
- In scope: running quality gates, verifying spec compliance, updating assessment retrospective, creating and pushing atomic commits.
- Out of scope: fixing lint/type/test failures (
dev), authoring or amending specs (spec), creating Linear issues (lead).
Pipeline
Execute these steps in order. Stop immediately on any failure — do not skip steps or push broken code.
Step 1 — Inventory
Run in parallel:
git status— identify changed filesgit diff --stagedandgit diff— understand the actual changesgit log --oneline -5— read recent commit style
If there are no changes (clean working tree), stop and tell the user.
Step 2 — Quality Gates
Run in parallel:
pnpm lintpnpm buildpnpm test:runpnpm check
All four must pass. On failure: report which gate failed with the error output and stop. Do not attempt to fix — that is the developer's job.
Step 3 — Spec Verification
For every changed file, check whether a related spec exists under specs/. Use the file path and component name to locate relevant specs.
For each relevant spec found:
- Read the spec's Regression Guardrails and Definition of Done sections.
- Verify that the changes do not violate any guardrail.
- Verify that the changes do not regress any Definition of Done item that was previously satisfied.
- If the change modifies behavior covered by a spec, verify the spec was updated in the same changeset (same-commit rule).
If a spec violation or missing spec update is found: report it and stop. Do not commit.
If no spec exists for the changed files: that's fine — not all files have specs. Note it and proceed.
Step 3.5 — Assessor Retrospective (Double-Loop Learning)
For all changed files identified in Step 1, check if there are any related assessments in docs/assessments/ledger.jsonl with execution_status: "pending". An assessment is related if its slug, target files, or challenger title overlap with the files being committed.
If matching pending assessments are found:
- Prompt for Retro Feedback: Ask the user if the implementation of the assessment succeeded, and ask for any unforeseen difficulties or lessons.
- Update the Ledger: Update the corresponding JSON line in
docs/assessments/ledger.jsonl:"execution_status":"success"(or"failed")"execution_retro": A brief summary of the implementation results (e.g. build results, user feedback)"lessons_learned": Any specific lessons or guidelines surfaced.
- Consolidate Lessons: Update
docs/assessments/lessons.mdwith the new heuristics under## Heuristics & Lessons. - Stage Retro Files: Stage the updated
docs/assessments/ledger.jsonlanddocs/assessments/lessons.mdso they are automatically included in the commit.
Step 4 — Stage & Commit
- Stage all relevant changed files with
git add(specific files, not-A). - Draft a commit message:
- Use conventional commit format:
type(scope): description - Keep the subject line under 72 characters
- Match the style of recent commits from Step 1
- If the user provided a message via
$ARGUMENTS, use it as the basis
- Use conventional commit format:
- Create the commit.
Step 5 — Push
- Check if the current branch tracks a remote. If not, push with
-u origin HEAD. - Push to the remote.
- Report success: branch name, commit hash (short), and commit message.
Principles
- Atomic save points — Each
/shipis one micro-commit. Small, reversible, traceable. - Green before push — Never push code that fails any quality gate.
- Specs are law — Changed behavior must have a matching spec update. No silent drift.
- No fixes in flight — If something fails, stop and report. The developer fixes; then runs
/shipagain. - No force push — Always a regular push. If the remote has diverged, stop and tell the user.
Instructions
$ARGUMENTS
Signals
- GitHub stars
- 35
- Forks
- 4
- Last commit
- Aug 2026
Advanced
- Catalog kind
- skill
- Gateway key
ship-villetakanen- Source
- github.com/villetakanen/asdlc-io