From ship
Captures learnings from sessions by reflecting on mistakes, surprises, project quirks, and patterns, appending to .learnings/LEARNINGS.md with optional hookify rules or design docs. Use for retrospectives.
npx claudepluginhub heliohq/ship --plugin shipThis skill is limited to using the following tools:
```bash
Captures lessons from completed phases into .shipyard/LESSONS.md: successes, surprises, pitfalls, improvements. Use after shipping, retrospectives, or reflection triggers.
Logs errors, user corrections, missing features, API failures, knowledge gaps, and best practices to .learnings/ markdown files. Promotes key insights to CLAUDE.md and AGENTS.md for AI agent self-improvement.
Share bugs, ideas, or general feedback.
SHIP_PLUGIN_ROOT="${SHIP_PLUGIN_ROOT:-$(ship-plugin-root 2>/dev/null || echo "$HOME/.codex/ship")}"
SHIP_SKILL_NAME=learn source "${SHIP_PLUGIN_ROOT}/scripts/preflight.sh"
Every session makes the harness stronger. This skill captures what was discovered or went wrong and routes it to the right persistent store so future sessions don't repeat the same mistakes.
Learnings file: .learnings/LEARNINGS.md
This is the single persistent store for all project learnings. Verified entries are rules — they replace what CONVENTIONS.md used to be. Pending entries are fresh observations that auto-verify when validated or auto-prune when stale.
Never:
Parse the input to determine which mode to run:
/ship:learn (no arguments, or end of auto pipeline) → Capture (includes auto-promote and auto-prune)/ship:learn show → Show current staging entries and their statusReflect on the current session and capture learnings.
Review the conversation for:
The test for each: would knowing this save 5+ minutes in a future session? If not, skip it.
For each learning, classify its type and priority, then write to
.learnings/LEARNINGS.md — the single store for all learnings.
Additionally (both optional — skip if the tool/skill is unavailable):
Skill("hookify:writing-rules").Skill("write-docs").Append to .learnings/LEARNINGS.md using this format:
## [LRN-YYYYMMDD-NNN] <type>
**Logged**: <ISO 8601 timestamp>
**Priority**: high | medium | low
**Status**: pending | verified
**Area**: <infra | code | ci | qa | design | ops>
### Summary
<One sentence — the core insight>
### Details
<What happened, why it matters, what the impact was>
### Suggested Action
<What to do differently next time>
### Metadata
- Source: <session_observation | user_feedback | auto_detected>
- Related Files: <file paths>
- Tags: <relevant tags>
---
ID format: LRN-YYYYMMDD-NNN where NNN is a zero-padded sequence
number for that day. Check existing entries to avoid duplicates.
Type: one of: correction, pattern, pitfall, quirk, preference
Status:
pending — fresh from this session, not yet validatedverified — confirmed against code, high confidence (equivalent to
what was previously a convention rule)Create .learnings/LEARNINGS.md if it doesn't exist.
High-confidence learnings (clear code constraints, user corrections,
repeated patterns) should be written directly as Status: verified.
Uncertain or operational learnings start as Status: pending.
When adding new learnings, also scan existing entries:
A pending entry should be upgraded to verified when:
Update the entry's Status to verified in place.
An entry should be removed when:
pending (never verified)Auto-prune: remove from file silently.
Display current learnings grouped by status.
Read .learnings/LEARNINGS.md and present:
Verified entries from .learnings/LEARNINGS.md are injected into every
session by session-start.sh alongside DOCS_INDEX.md. Pending entries stay
in the file for on-demand reads until they are promoted.
Output the report card (read skills/shared/report-card.md for the standard format):
## [Learn] Report Card
| Field | Value |
|-------|-------|
| Status | DONE |
| Summary | <N> learnings captured |
### Metrics
| Metric | Value |
|--------|-------|
| New entries | <N> |
| Verified | <N> |
| Pending | <N> |
| Auto-promoted | <N> pending → verified |
| Auto-pruned | <N> stale/contradicted removed |
| Hookify rules | <N> generated |
| Total entries | <N> (<V> verified, <P> pending) |
### Artifacts
| File | Purpose |
|------|---------|
| .learnings/LEARNINGS.md | Persistent learnings store |