Claude Code plugin

Commands · tools · skills — the whole surface

One plugin covers project kickoff → design → the implementation loop → reporting. This page is a living record of everything the plugin provides — when a new command, tool or skill ships, this page updates with it (a repository test blocks anything left out).

/plugin marketplace add bunhine0452/Ocul-PM
/plugin install oculpm@oculpm

From project kickoff to the implementation loop

For a new feature, start with /oculpm:inception (design only) or go straight to /oculpm:next — inception's interview and research are worth another lap only in unfamiliar territory.

6 slash commands

Things you call with one typed line.

/oculpm:project_initOnce, on a new repository

Initializes this project for ocul-pm tracking — creates .oculpm/ (the record store), AGENTS.md (agent recording rules), and a protective block in .gitignore. Running the command yourself counts as explicit consent, so it proceeds without a second confirmation, and on an already-tracked project it only fills in what's missing. The app is not required.

/oculpm:inceptionDesigning a new project or feature area

Seeds a design with the project-inception skill: a minimal read on the problem → web research to map the landscape → settling the spec with you using options backed by evidence (versions, sources) → a 3-depth detailed plan via plan_create → EVALS.md done-criteria → starter .claude/rules. You can pass an idea as an argument: /oculpm:inception I want to build a to-do app

/oculpm:nextThe implementation loop — run it repeatedly

Picks up the next unfinished leaf on the active plan and drives one cycle: implement → verify the gates → journal → update the plan. It's the plugin's counterpart to the app planner's ▶ Run. To target a specific item: /oculpm:next login-happy-path

/oculpm:standupWhen you need a report

Gathers today's journal entries and plan progress into a standup summary (done / in progress or blocked / next).

/oculpm:boardTo follow progress from another device

Publishes your active plans and their item states as one private Claude artifact board, and refreshes that board when you run it again. The board is read-only; the source stays in .oculpm/planner/. The app builds the documents and masks anything that looks like a secret before upload. You decide who sees it from the board's Share menu. Works when Claude Code is signed in with a claude.ai account.

/oculpm:helpWhen you've forgotten what's there

Shows the entire plugin surface (6 commands · 7 MCP tools · 5 skills · hooks) as one reference card, and recommends the next step for where you are now.

7 MCP tools

Agents record through tools instead of imitating the markdown spec by hand, and pull the accumulated record back through tools — paths, frontmatter and item ids are guaranteed by the server. Every tool works only in a tracked project with .oculpm/ (the sole exception: project_init).

ToolWhat it does
journal_searchSearch past journal entries — narrow by query (title, body, tags) plus entries that touched a given file, type, status, date range, tags. Returns a compact hit list instead of full bodies, sorted by relevance (title > tags > slug > path > body weights plus a small recency bonus) — an old entry still comes first when it matches strongly. Reads the SQLite cache when the app is running, the disk otherwise (see source in the response). When a weekly rollup (.oculpm/rollups/) matches, it comes first in a rollups array. The rule is: call it before starting work.
journal_readThe full body of one journal entry the search picked out. Not for skimming a list — only after deciding it's worth reading.
journal_writeRecords one journal entry to spec every time a unit of work (bug/feature/refactor/error/chore) finishes. Takes a related link to past entries and a session_id; secrets in the body are masked and the response says so. A bug/error entry touching the same files as an earlier defect is linked automatically as followup (auto_related); tags are normalized and near-duplicates of existing vocabulary come back as tag_hints.
plan_statusReads items and status on the active plan — the evidence for "how far are we." Each plan comes back with its current file hash, which becomes the base_hash for plan_update.
plan_updateUpdates a plan item's status and logs it. A parent with children rolls up automatically, so a direct update is refused. base_hash is required — if it doesn't match the disk, the write is refused, never silently overwritten, with the current hash attached instead. This is the spot where one parallel session's change used to vanish silently under another's.
plan_createCreates a new plan at 3 depths (milestone → task → subtask) — frontmatter and id spec guaranteed by the server. If an active plan with an overlapping title or id already exists it refuses and returns that candidate, nudging reuse (allow_similar overrides).
project_initStarts tracking on an untracked repository — only on the user's explicit request and confirmation. Rejects symlinks and guards against the home directory.

5 bundled skills

Methodologies that fire on their own when the situation calls for them. They arrive with the plugin install, and can also be installed individually from the app's Skills & Rules screen. Open in app is an oculpm:// deep link — it only gets as far as the app raising a confirmation sheet, and nothing changes before you approve.

oculpm-journal v2.36.0The full-spec carrier for the recording spec

Loads when the fine detail of journal/plan rules is needed — the full text of folder conventions, frontmatter fields, section order and related-link rules.

project-inception v2.36.0Kicking off a new project or feature area

Seeds research → settling the spec → a 3-depth plan → EVALS.md → starter .claude/rules in one pass. This is the skill /oculpm:inception calls.

self-audit v2.36.0Before you say "done"

Forces a requirements check, running the gates, and a second look at the diff. It fires right before you report completion.

run-evals v2.36.0Actually scoring your done-criteria

Runs and scores the criteria in EVALS.md and adds one line to the record table — the app's Retro screen reads that table to chart the trend.

tdd-workflow v2.36.0A failing test, first

Forces the RED → GREEN → refactor cycle. Especially in areas prone to regressions.

The safety contract — what it reads, writes and never does — is pinned in the repository's plugin contract document, alongside tests. The hook is one local append with no network, and .oculpm/hooks/, which holds the conversation log, is blocked from commits by a gitignore-managed block. There's one more gate here — a delivery gate: if code changed and the session is about to end with no journal entry, it instructs the agent to write one, once per session (grounded in an internal benchmark that measured 0% headless-session recording compliance from rule injection alone).

A 26-skill shop catalog

The app's Skills & Rules → Shop tab detects your stack from project manifests (package.json, Cargo.toml, pyproject.toml, and the like) and recommends matching skills from the catalog below. All of them are pinned-commit copies of MIT third-party skills (ECC · ponytail · i-have-adhd) — unmodified originals, zero runtime network (nothing is fetched at install time). Installing puts them under .claude/skills/, a native Claude Code feature, so they work even without the plugin. One of them reshapes output rather than code: i-have-adhd matches no manifest, so you find it by search rather than by recommendation, and only a person can invoke it.

SkillWhatPinned commitSource
python-patternsPython idioms and patternsecc@e4e4163SKILL.md ↗
python-testingpytest-based TDDecc@e4e4163SKILL.md ↗
rust-patternsRust ownership and trait patternsecc@e4e4163SKILL.md ↗
rust-testingRust testing patternsecc@e4e4163SKILL.md ↗
react-patternsReact 18/19 component patternsecc@e4e4163SKILL.md ↗
react-testingReact Testing Library testsecc@e4e4163SKILL.md ↗
golang-patternsGo idioms and patternsecc@e4e4163SKILL.md ↗
golang-testingGo table-driven testingecc@e4e4163SKILL.md ↗
security-reviewSecurity review checklistecc@e4e4163SKILL.md ↗
codebase-onboardingCodebase onboarding guideecc@e4e4163SKILL.md ↗
ponytailForces the laziest (minimal) solutionponytail@16f2980SKILL.md ↗
ponytail-reviewReview that strips over-engineeringponytail@16f2980SKILL.md ↗
ponytail-auditRepository-wide over-design auditponytail@16f2980SKILL.md ↗
vue-patternsVue 3 Composition API patternsecc@e4e4163SKILL.md ↗
react-performanceReact/Next.js performance optimizationecc@e4e4163SKILL.md ↗
vite-patternsVite config and build patternsecc@e4e4163SKILL.md ↗
laravel-patternsLaravel architecture patternsecc@e4e4163SKILL.md ↗
springboot-patternsSpring Boot backend patternsecc@e4e4163SKILL.md ↗
django-patternsDjango/DRF patternsecc@e4e4163SKILL.md ↗
fastapi-patternsFastAPI async API patternsecc@e4e4163SKILL.md ↗
accessibilityWCAG 2.2 accessibility implementation and auditecc@e4e4163SKILL.md ↗
api-designREST API design patternsecc@e4e4163SKILL.md ↗
database-migrationsZero-downtime DB migrationsecc@e4e4163SKILL.md ↗
e2e-testingPlaywright E2E testingecc@e4e4163SKILL.md ↗
inherit-legacy-styleInheriting legacy styleecc@e4e4163SKILL.md ↗
i-have-adhdAction-first output shapingi-have-adhd@24d22f7SKILL.md ↗

An installed skill's one-line description rides along in every session's context — 2-3 per project is the recommended budget. The body loads only when the skill fires. "Pinned commit" is the upstream SHA at the moment we took our copy, so you can check on the spot exactly what matches the original.