ninthspace/claude-code-marketplace/tree/main/weather
이 mod 소개
Claude Code Marketplace
개발 도구와 생산성 유틸리티를 제공하는 Claude Code 플러그인 마켓플레이스입니다.
개요
이 마켓플레이스에는 안내형 계획 수립(CPM), 데이터베이스 기반 계획 산출물(DPM), 노트 검색, PHP 코드 인텔리전스, JavaScript/TypeScript 코드 단순화, Filament v5 관리자 목업, 저장소에서 cpm-next가 남긴 작업을 실시간으로 보여 주는 기능, Claude가 생성한 파일에 빠르게 접근하는 기능, 프롬프트 하단에 현재 날씨를 표시하는 기능이 포함되어 있습니다. 모든 도구는 Claude Code와 매끄럽게 작동하도록 설계되었습니다.
설치
마켓플레이스에서 설치(Claude Code 내부)
# Install the marketplace
/plugin marketplace add ninthspace/claude-code-marketplace
# Install individual plugins
/plugin install noteplan@ninthspace-marketplace
/plugin install php-lsp@ninthspace-marketplace
/plugin install cpm@ninthspace-marketplace
/plugin install dpm@ninthspace-marketplace
/plugin install js-simplifier@ninthspace-marketplace
/plugin install filament-mockup@ninthspace-marketplace
/plugin install whats-next@ninthspace-marketplace
/plugin install generated-files@ninthspace-marketplace
/plugin install weather@ninthspace-marketplace
접미사는 저장소 이름이 아니라 마켓플레이스 이름입니다. marketplace.json은
ninthspace-marketplace를 선언하며, 설치되는 모든 플러그인은 이 이름을 키로 사용합니다. 따라서 위
marketplace add 줄에 저장소를 어떻게 적었든 cpm@claude-code-marketplace는 아무것도 찾지 못합니다.
/cpm:ralph에 추가로 필요한 것 — ralph-loop 포크
CPM의 자율 루프(/cpm:ralph) 자체는 루프를 구현하지 않습니다. 상태 파일을 쓰고 별도 플러그인이 제공하는 Stop hook에 의존합니다. 우리가 제공하는 것을 설치하세요.
/plugin marketplace add ninthspace/ralph-loop
/plugin install ralph-loop@ninthspace-ralph
Anthropic의 ralph-loop 포크입니다
(Apache-2.0). Daisy Hollman의
ralph-wiggum에서 이어진 현재 유지보수 계열입니다. 포크의 첫 커밋은 수정되지 않은 업스트림 플러그인 그대로이므로 모든 변경을 업스트림과의 diff로 확인할 수 있습니다.
동작 변경은 하나이며, 이것이 이 포크를 우선해야 하는 이유입니다. Stop hook은 transcript를 읽지 못해도 루프의 상태 파일을 삭제하지 않습니다. 업스트림은 transcript 누락, assistant 기록을 찾는 grep 실패, jq 파싱 오류를 실행 종료 사유로 취급합니다. 그러나 상태 파일이 곧 루프이므로 그렇게 끝나면 0으로 종료하면서 promise도 상태 파일도 남지 않아 완료된 실행과 구별할 수 없습니다. 이 포크는 세 경우 모두 계속 진행합니다. 한 턴의 출력을 읽지 못했다는 것은이번 반복에는 promise가 없음을 뜻할 뿐, 작업이 끝났음을 뜻하지 않습니다. 사람이 지켜보지 않는 야간 실행에서 바로 그 차이가 보이지 않은 채 비용을 키웁니다.
CPM은 셋 중 어느 것과도 함께 사용할 수 있습니다. cpm/hooks/lib/ralph-hook-probe.sh는 어느 플러그인이 hook을 제공하든 감지하며, 아무것도 없으면 경고합니다. 업스트림 플러그인도 계속 사용할 수 있고 /cpm:ralph의 개발과 테스트는 이 포크를 대상으로 합니다.
한 번에 둘 이상 활성화하지 마세요. 셋 모두 Stop hook을 등록하고 같은 세션에서 둘이 실행되며, 루프를 끝내는 데는 그중 하나가 상태 파일을 삭제하는 것으로 충분합니다.
사용 가능한 플러그인
NotePlan Search (v1.0.0)
Claude Code에서 NotePlan 노트 검색 및 조회
NotePlan 콘텐츠를 검색하는 스킬입니다.
- Notes folder - 독립 노트
- Calendar folder - 일/주/월별 노트
- Spaces - 팀/공유 노트(SQLite 데이터베이스)
- iCloud - iCloud Drive로 동기화하는 경우
결과는 최근 수정 순으로 정렬됩니다.
빠른 시작:
# Search for a term
/noteplan coffee
# List all Spaces notes
/noteplan --list --spaces
# Fetch full note by ID
/noteplan --get UUID
# Search with date filters
/noteplan meeting --after 2025-01-01
# Natural language queries
/noteplan find me everything about project planning
주요 기능:
- 모든 NotePlan 소스를 대상으로 한 전문 검색
- 날짜 필터링(--after, --before)
- AI 도구용 JSON 출력
- noteplan:// URL을 사용해 앱에서 노트를 여는 직접 접근
- 기본적으로 @Templates, @Trash, @Archive 제외(--all로 포함)
요구 사항:
- NotePlan 3이 설치된 macOS
- Python 3
PHP LSP (v1.0.0)
Claude Code에 PHP 의미 기반 코드 인텔리전스 제공
intelephense와 lsp-mcp-server 브리지를 통해 Claude Code의 PHP 파일에 24개의 LSP 도구를 추가합니다.
기능:
- 정의로 이동, 참조 찾기, 구현 찾기
- 호버 정보(타입 시그니처, 문서)
- 코드 완성 및 시그니처 도움말
- 진단(파일별 및 프로젝트 전체의 오류, 경고)
- 전체 코드베이스에서 안전한 이름 변경
- 코드 작업(빠른 수정, 리팩터링)
- 호출 계층 및 타입 계층
- 파일 분석(가져오기, 내보내기, 관련 파일)
- 문서 서식 지정
빠른 시작:
# One-time setup (installs intelephense + lsp-mcp-server, configures project)
/php-lsp:setup
# Restart Claude Code — LSP auto-starts on first use
# Check everything is working
/php-lsp:status
요구 사항:
- Node.js >= 18
- Git
Claude Planning Method (v3.12.1)
Claude Code를 위한 다중 관점 party mode와 집중 상담을 갖춘 안내형 계획 수립
안내형 대화를 통해 구조화된 발견, 제품 아이디어 구상, 아키텍처 탐색, 사양 작성, 작업 분해, 작업 실행, 회고와 방향 수정을 수행합니다. party mode는 이름 있는 전문 페르소나(PM, Architect, Developer, UX Designer, QA, DevOps, Tech Writer, Scrum Master)가 참여하는 멀티 에이전트 토론으로 트레이드오프를 논의하고 맹점을 드러냅니다. consult mode는 구성원을 동적으로 바꾸며 선택한 전문가와 집중적인 일대일 대화를 합니다. BMAD-METHOD에서 영감을 받았습니다.
v3는 Opus 5 이상에 맞춰 조정되었습니다. 모든 스킬은 긍정적 어조의 지시, 명확한 중지 기준, 결과 중심의 절차 안내, 줄어든 token 사용량을 적용합니다.
파이프라인을 이루는 스물두 개 스킬:
| Skill | Purpose | Output |
|-------|---------|--------|
| /cpm:party | 여러 관점의 에이전트 페르소나 토론 | 토론 요약 + 선택적 파이프라인 인계 |
| /cpm:consult | 선택한 전문가와 집중 일대일 상담 | docs/discussions/{nn}-discussion-{slug}.md |
| /cpm:discover | 안내형 문제 발견 | docs/plans/01-plan-{slug}.md |
| /cpm:brief | 제품 아이디어 구상 — 비전, 기능, 사용자 여정 | docs/briefs/01-brief-{slug}.md |
| /cpm:architect | 아키텍처 탐색 — 트레이드오프가 포함된 ADR | docs/architecture/01-adr-{slug}.md |
| /cpm:spec | 요구 사항 및 아키텍처 사양 | docs/specifications/01-spec-{slug}.md |
| /cpm:epics | 에픽 문서로 작업 분해 | docs/epics/{parent}-{seq}-epic-{slug}.md + 커버리지 매트릭스 |
| /cpm:do | 인수 기준에 따른 작업 실행 | 업데이트된 에픽 문서 + 구현된 코드 |
| /cpm:ralph | 자율 실행 — 에픽 모음 또는 전체 사양을 처음부터 끝까지 실행 | Ralph 루프 명령 + 실행 로그 |
| /cpm:review | 에이전트 페르소나를 활용한 적대적 검토 | docs/reviews/{nn}-review-{slug}.md + 선택적 자동 수정 |
| /cpm:audit | 9개 차원에 걸친 독립 코드베이스 상태 감사 | docs/audits/{nn}-audit-{slug}.md |
| /cpm:inspect | 변경 세트가 한 일과 저장소 내 위치 | 임시 출력(+ 선택적 게시 산출물) |
| /cpm:retro | 완료된 작업의 가벼운 회고 | docs/retros/01-retro-{slug}.md |
| /cpm:pivot | 진행 중 방향 수정 — 어떤 계획 산출물이든 수정 | 정밀 편집 문서 + 하위 단계 연쇄 업데이트 |
| /cpm:present | 대상에 맞춘 산출물 변환 | docs/communications/{nn}-{format}-{slug}.md(+ 선택적 HTML, + 선택적 게시 산출물) |
| /cpm:templates | 템플릿 검색 가능성 및 스캐폴딩 | 템플릿 미리 보기 + docs/templates/의 재정의 파일 |
| /cpm:library | 모든 스킬이 참고할 문서 가져오기 | YAML front-matter가 있는 docs/library/{name}.md |
| /cpm:archive | 완료되었거나 오래된 계획 문서 보관 | 파일을 docs/archive/로 이동 |
| /cpm:quick | 작은 변경을 위한 경량 실행 | docs/quick/{nn}-quick-{slug}-spec.md |
| /cpm:status | 프로젝트 상태 파악 및 다음 단계 권장 | 임시 출력(stdout만) |
| /cpm:clean | 남은 세션 상태 파일을 필요할 때 정리 | 없음(파일을 제거하고 삭제 내용을 보고) |
| /cpm:artifact | 게시된 산출물을 만든 작업에 등록 | docs/artifacts/index.md + 관련 문서의 백링크 |
빠른 시작:
# Brainstorm with your team of agent personas
/cpm:party should we use a monorepo or separate repos?
# Focused consultation with one expert
/cpm:consult Margot
# Full pipeline: discover → brief → architect → spec → epics → do → retro
/cpm:discover build a customer portal for our booking system
/cpm:brief docs/plans/01-plan-customer-portal.md
/cpm:architect docs/briefs/01-brief-customer-portal.md
/cpm:spec docs/briefs/01-brief-customer-portal.md
/cpm:epics docs/specifications/01-spec-customer-portal.md
/cpm:do
/cpm:retro
# Import reference docs for skills to use as context
/cpm:library docs/architecture-decisions.md
# Review planning artifacts before or after execution
/cpm:review docs/epics/01-epic-customer-portal.md
# Course correct mid-flow
/cpm:pivot docs/specifications/01-spec-customer-portal.md
# Transform artifacts for stakeholders
/cpm:present docs/specifications/01-spec-customer-portal.md
# Explore and customise templates
/cpm:templates preview brief
# Clean up completed artefacts
/cpm:archive
# Hand a whole spec to the autonomous loop — epics first, then the work
/cpm:ralph docs/specifications/01-spec-customer-portal.md
# Small change? Skip the full pipeline
/cpm:quick add a --verbose flag to the deploy script
# Check project status and get next-step recommendations
/cpm:status
# Clean up leftover artefacts
/cpm:clean
# Register a published artifact against the work that produced it
/cpm:artifact https://claude.ai/code/artifact/... auth flow explorer, from spec 12
# Or jump to any step independently
/cpm:spec I need a REST API for inventory management
/cpm:do 3 # work on a specific task
주요 기능:
- Party mode — 이름 있는 에이전트 페르소나가 토론하고 논쟁하며 건설적으로 의견을 달리함
- Consult mode — 초대/해제 및 리드 이전을 지원하는 집중 일대일 전문가 대화
- discover 및 spec 단계에 여러 관점의 통찰을 엮음
- 제품 아이디어 구상 — 요구 사항 전에 비전, 가치 제안과 사용자 여정을 탐색
- 아키텍처 탐색 — 트레이드오프 분석과 의존성 매핑을 포함한 안내형 ADR
- 양식이 아닌 안내형 대화 — 사용자의 답을 바탕으로 진행
- 한 번에 한 주제만 다루며 사용자가 진행을 통제
- 복잡도에 맞춰 깊이를 조절 — 가치가 없는 단계는 건너뜀
- MoSCoW로 요구 사항 우선순위 지정
- 근거와 대안을 포함한 아키텍처 결정(기존 ADR 참조)
- 사양 요구 사항 추적성 — 스토리를 충족하는 요구 사항으로 연결
- 인수 기준과 종속성을 갖춘 적정 크기의 에픽과 스토리
- 파이프라인 전체를 관통하는 테스트 흐름 — spec이 테스트 접근법 태그를 정의하고 epics가 이를 기준으로 전파해 테스트 작업을 만들며 do가 검증 게이트에서 테스트를 발견하고 실행
- 인수 기준 검증 및 ADR 인식을 갖춘 작업 실행 루프
- 테스트 러너 탐색 — 프로젝트 구성 파일에서 규칙에 따라 감지하고 세션별로 캐시
- 에픽 수준 검증 — 완료된 에픽을 원본 spec과 대조
- 사양 커버리지 롤업 — 한 명령으로 모든 에픽의 커버리지 매트릭스를 사양 요구 사항에 다시 연결하고 “이 사양은 완전히 전달되었는가?”에 답하며 추적되지 않은 요구 사항을 먼저 표시
- 자율 사양 제공 —
/cpm:ralph를 사양에 지정하면 생성한다
설치
먼저 작성자의 README에서 marketplace와 플러그인 이름을 확인하세요. 저장소 구조에 따라 명령어가 달라질 수 있습니다.
claude plugin marketplace add ninthspace/claude-code-marketplace claude plugin install weather
원문 / README
Claude Code Marketplace
A Claude Code plugin marketplace providing development tools and productivity utilities.
Overview
This marketplace contains plugins for facilitated planning (CPM), database-backed planning artefacts (DPM), note searching, PHP code intelligence, JavaScript/TypeScript code simplification, Filament v5 admin mockups, a live view of the cpm-next work left in a repository, quick access to the files Claude generates, and the current weather in the prompt footer. All tools are designed to work seamlessly with Claude Code.
Installation
Install from Marketplace (inside Claude Code)
# Install the marketplace
/plugin marketplace add ninthspace/claude-code-marketplace
# Install individual plugins
/plugin install noteplan@ninthspace-marketplace
/plugin install php-lsp@ninthspace-marketplace
/plugin install cpm@ninthspace-marketplace
/plugin install dpm@ninthspace-marketplace
/plugin install js-simplifier@ninthspace-marketplace
/plugin install filament-mockup@ninthspace-marketplace
/plugin install whats-next@ninthspace-marketplace
/plugin install generated-files@ninthspace-marketplace
/plugin install weather@ninthspace-marketplace
The suffix is the marketplace's name, not the repository's. marketplace.json declares
ninthspace-marketplace, and that is what every installed plugin is keyed by — so
cpm@claude-code-marketplace resolves to nothing however the repository is spelled in the
marketplace add line above it.
Also needed for /cpm:ralph — the ralph-loop fork
CPM's autonomous loop (/cpm:ralph) does not implement the loop itself. It writes a state
file and relies on a Stop hook supplied by a separate plugin. Install ours:
/plugin marketplace add ninthspace/ralph-loop
/plugin install ralph-loop@ninthspace-ralph
This is a fork of Anthropic's ralph-loop
(Apache-2.0), which is itself the maintained line descended from Daisy Hollman's
ralph-wiggum. The fork's first commit is the upstream plugin unmodified, so every change
is visible as a diff against it.
One behavioural change, and it is the reason to prefer the fork: the Stop hook no longer
deletes the loop's state file when it cannot read the transcript. Upstream treats a missing
transcript, a failed grep for assistant records, and a jq parse error as reasons to end
the run — and the state file is the loop, so ending it that way exits 0 with no promise
and no state file, which is indistinguishable from a completed run. The fork continues on
all three: failing to read a turn's output means no promise this iteration, not the work
is finished. An unattended overnight run is precisely where that difference is invisible
and expensive.
CPM works with any of the three — cpm/hooks/lib/ralph-hook-probe.sh detects the hook
whichever plugin provides it, and warns when none is present. The upstream plugins remain
usable; the fork is what /cpm:ralph is developed and tested against.
Do not enable more than one at a time. All three register a Stop hook, both fire on the same session, and the state file only has to be deleted by one of them for the loop to end.
Available Plugins
NotePlan Search (v1.0.0)
Search and query NotePlan notes from Claude Code
A skill for searching NotePlan content across:
- Notes folder - Standalone notes
- Calendar folder - Daily/weekly/monthly notes
- Spaces - Team/shared notes (SQLite database)
- iCloud - If syncing via iCloud Drive
Results are sorted by most recently modified first.
Quick Start:
# Search for a term
/noteplan coffee
# List all Spaces notes
/noteplan --list --spaces
# Fetch full note by ID
/noteplan --get UUID
# Search with date filters
/noteplan meeting --after 2025-01-01
# Natural language queries
/noteplan find me everything about project planning
Key Features:
- Full-text search across all NotePlan sources
- Date filtering (--after, --before)
- JSON output for AI tools
- Direct noteplan:// URLs to open notes in the app
- Excludes @Templates, @Trash, @Archive by default (use --all to include)
Requirements:
- macOS with NotePlan 3 installed
- Python 3
PHP LSP (v1.0.0)
PHP semantic code intelligence for Claude Code
Adds 24 LSP tools to Claude Code for PHP files via intelephense and the lsp-mcp-server bridge.
Capabilities:
- Go-to-definition, find references, find implementations
- Hover info (type signatures, documentation)
- Code completion and signature help
- Diagnostics (errors, warnings) per file and project-wide
- Safe rename across entire codebase
- Code actions (quick fixes, refactoring)
- Call hierarchy and type hierarchy
- File analysis (imports, exports, related files)
- Document formatting
Quick Start:
# One-time setup (installs intelephense + lsp-mcp-server, configures project)
/php-lsp:setup
# Restart Claude Code — LSP auto-starts on first use
# Check everything is working
/php-lsp:status
Requirements:
- Node.js >= 18
- Git
Claude Planning Method (v3.12.1)
Facilitated planning with multi-perspective party mode and focused consultation for Claude Code
Structured discovery, product ideation, architecture exploration, specification, work breakdown, task execution, retrospectives, and course correction through guided conversation. Includes party mode — a multi-agent discussion where named specialist personas (PM, Architect, Developer, UX Designer, QA, DevOps, Tech Writer, Scrum Master) debate trade-offs and surface blind spots — and consult mode for focused one-to-one expert dialogue with dynamic membership. Inspired by the BMAD-METHOD.
v3 is tuned for Opus 5 and later: all skills use positive-voice instructions, explicit stop criteria, outcome-oriented procedural guidance, and a reduced token footprint.
Twenty-two skills forming a pipeline:
| Skill | Purpose | Output |
|-------|---------|--------|
| /cpm:party | Multi-perspective discussion with agent personas | Discussion summary + optional pipeline handoff |
| /cpm:consult | Focused one-to-one consultation with a chosen expert | docs/discussions/{nn}-discussion-{slug}.md |
| /cpm:discover | Facilitated problem discovery | docs/plans/01-plan-{slug}.md |
| /cpm:brief | Product ideation — vision, features, user journeys | docs/briefs/01-brief-{slug}.md |
| /cpm:architect | Architecture exploration — ADRs with trade-offs | docs/architecture/01-adr-{slug}.md |
| /cpm:spec | Requirements & architecture specification | docs/specifications/01-spec-{slug}.md |
| /cpm:epics | Work breakdown into epic documents | docs/epics/{parent}-{seq}-epic-{slug}.md + coverage matrix |
| /cpm:do | Task execution with acceptance criteria | Updated epic doc + implemented code |
| /cpm:ralph | Autonomous execution — a set of epics, or a whole spec end to end | Ralph loop command + execution log |
| /cpm:review | Adversarial review with agent personas | docs/reviews/{nn}-review-{slug}.md + optional autofix |
| /cpm:audit | Independent codebase health audit across nine dimensions | docs/audits/{nn}-audit-{slug}.md |
| /cpm:inspect | What a change set did, and where it sits in the repo | Ephemeral (+ optional published artifact) |
| /cpm:retro | Lightweight retrospective from completed work | docs/retros/01-retro-{slug}.md |
| /cpm:pivot | Course correction — amend any planning artefact | Surgically edited docs + cascaded downstream updates |
| /cpm:present | Audience-aware artifact transformation | docs/communications/{nn}-{format}-{slug}.md (+ optional HTML, + optional published artifact) |
| /cpm:templates | Template discoverability & scaffolding | Template previews + override files at docs/templates/ |
| /cpm:library | Import reference docs for all skills to use | docs/library/{name}.md with YAML front-matter |
| /cpm:archive | Archive completed or stale planning documents | Files moved to docs/archive/ |
| /cpm:quick | Lightweight execution for small changes | docs/quick/{nn}-quick-{slug}-spec.md |
| /cpm:status | Project status reconnaissance and next-step recommendations | Ephemeral (stdout only) |
| /cpm:clean | On-demand cleanup of leftover session-state files | None (removes files, reports what was deleted) |
| /cpm:artifact | Register published artifacts against the work that produced them | docs/artifacts/index.md + backlinks in associated documents |
Quick Start:
# Brainstorm with your team of agent personas
/cpm:party should we use a monorepo or separate repos?
# Focused consultation with one expert
/cpm:consult Margot
# Full pipeline: discover → brief → architect → spec → epics → do → retro
/cpm:discover build a customer portal for our booking system
/cpm:brief docs/plans/01-plan-customer-portal.md
/cpm:architect docs/briefs/01-brief-customer-portal.md
/cpm:spec docs/briefs/01-brief-customer-portal.md
/cpm:epics docs/specifications/01-spec-customer-portal.md
/cpm:do
/cpm:retro
# Import reference docs for skills to use as context
/cpm:library docs/architecture-decisions.md
# Review planning artifacts before or after execution
/cpm:review docs/epics/01-epic-customer-portal.md
# Course correct mid-flow
/cpm:pivot docs/specifications/01-spec-customer-portal.md
# Transform artifacts for stakeholders
/cpm:present docs/specifications/01-spec-customer-portal.md
# Explore and customise templates
/cpm:templates preview brief
# Clean up completed artefacts
/cpm:archive
# Hand a whole spec to the autonomous loop — epics first, then the work
/cpm:ralph docs/specifications/01-spec-customer-portal.md
# Small change? Skip the full pipeline
/cpm:quick add a --verbose flag to the deploy script
# Check project status and get next-step recommendations
/cpm:status
# Clean up leftover session-state files on demand
/cpm:clean
# Register a published artifact against the work that produced it
/cpm:artifact https://claude.ai/code/artifact/... auth flow explorer, from spec 12
# Or jump to any step independently
/cpm:spec I need a REST API for inventory management
/cpm:do 3 # work on a specific task
Key Features:
- Party mode — named agent personas discuss, debate, and disagree constructively
- Consult mode — focused one-to-one expert dialogue with invite/dismiss and lead transfer
- Multi-perspective insights woven into discover and spec phases
- Product ideation — explore vision, value propositions, and user journeys before requirements
- Architecture exploration — facilitated ADRs with trade-off analysis and dependency mapping
- Facilitated conversations, not forms — builds on your answers
- One topic at a time with user-gated progression
- Scales depth to complexity — skips phases that don't add value
- MoSCoW prioritisation for requirements
- Architecture decisions with rationale and alternatives (references existing ADRs)
- Spec requirement traceability — stories link back to the requirements they satisfy
- Right-sized epics and stories with acceptance criteria and dependencies
- Testing thread through the pipeline — spec defines test approach tags, epics propagate them to criteria and generate testing tasks, do discovers and runs tests in verification gates
- Task execution loop with acceptance criteria verification and ADR awareness
- Test runner discovery — convention-based detection from project config files, cached per session
- Epic-level verification — completed epics are checked against their source spec
- Spec coverage roll-up — one command joins every epic's coverage matrix back to the spec's requirements and answers "is this spec fully delivered?", naming untraced requirements first
- Autonomous spec delivery — point
/cpm:ralphat a spec and it generates the epics, then works them; the loop stops on the roll-up script's verdict, not on its own judgement - Spec, ADR, and test coverage compliance review dimensions
- Lightweight retros with testing gap analysis that feed forward into the next planning cycle
- Adversarial review — agent personas challenge assumptions, spot gaps, and flag risks with optional autofix
- Independent codebase audit — nine dimensions of code health with
file:linecitations, prioritised findings, and handoff to spec/library/quick - Course correction — surgically amend any artefact with cascading downstream updates (5 artifact types)
- Audience-aware artifact transformation — present planning artifacts to any audience in any format
- Two-tier template system — structural (fixed data contracts) and presentational (overridable)
- Project reference library — import docs that skills auto-discover and use as context
- Archive — clean up completed artefacts with staleness heuristics and chain detection
- Project status reconnaissance — scan artifacts and git history, produce a narrative briefing with next steps
- Customisable agent roster — override default personas per project
- Compaction resilience — seamlessly survives Claude Code context compaction, with
/cpm:cleanfor on-demand cleanup of leftover session-state files
Companion tool — cpm board: a standalone terminal UI (cpm/tools/board/) that shows the CPM status of every project you register — a three-column Projects → Epics → Stories browser — and launches the right /cpm:* session for each without leaving the board. It reads each project's docs/ planning artifacts read-only. See the board README.
/cpm:ralph needs a Stop hook, and CPM does not ship one. The autonomous loop is driven by a Stop hook from a separate plugin; every other skill works without one. Install:
/plugin marketplace add ninthspace/ralph-loop
/plugin install ralph-loop@ninthspace-ralph
ralph-loop@ninthspace-ralph 1.2.0 or later is the supported configuration — it is what CPM's documented loop behaviour is written against. The loop also runs on ralph-loop@claude-plugins-official and ralph-wiggum@claude-code-plugins, and /cpm:ralph probes whichever hook is installed rather than checking a name or a version. What you lose below 1.2.0 is not an error message: an unreadable transcript ends the run silently and looks like a clean finish, every <promise> in the transcript is the hook's own reminder rather than the model's, and active: false in the loop's state file does nothing at all. See the fork's README for what each change does.
Thinking about DPM instead? The two are the same pipeline over different substrates, and a repository can only sensibly use one. Moving to DPM from CPM covers what carries across, what does not, and the one move to make before DPM's first publish — CPM can run it with you while you still have both installed.
View full documentation | Interactive Training Guide
DPM — Data-Modelled Planning Method (v0.8.0)
Planning artefacts as database rows, with markdown as a generated projection
CPM's pipeline with a different substrate. Every artefact — spec, epic, story, requirement, coverage row — is a row with typed columns, and every cross-artefact reference is a foreign key rather than a path in prose. The markdown under docs/ is a generated, one-way projection: it is committed so pull requests still show a readable diff, but it is never read back. Skills write exclusively through typed MCP tools, so no skill contains SQL and nothing parses prose.
What the substrate buys:
- Referential integrity — a story cannot point at an epic that does not exist, and a renumber updates every reference by construction rather than by search-and-replace
- Queryable state — "which requirements have no covering criterion" is a query, not a grep across four hundred files
- A guard that cannot be fooled — a pre-commit hook regenerates both artefacts and refuses a commit that disagrees with the database, so a hand-edit to a generated file is caught rather than silently overwritten at the next render
- Restorable from text —
.dpm/dpm.sqlis the committed form; the binary database is derived and gitignored
Coming from CPM? Read MIGRATION.md before you run anything in that repository. There is no importer and there will not be one — DPM cannot read prose, which is the point of it — so the move is a short list of things worth carrying by hand and a longer list to leave alone. One step has to happen first: DPM's first publish offers to delete files it did not write, and your CPM corpus has to be out of its reach before then. CPM can also walk you through the whole thing, which is worth doing while you still have both systems installed.
Quick Start:
# After installing, in each repository DPM keeps artefacts in — check the path is free first,
# because DPM's hook replaces an existing pre-commit rather than running after it:
git config core.hooksPath && ls -l .git/hooks/pre-commit # both should come back empty
# (an absolute <plugin path> — a symlink resolves its target from .git/hooks/)
ln -s <plugin path>/dpm/hooks/pre-commit .git/hooks/pre-commit
# Then, after any skill run that wrote something:
/dpm:publish
If either check came back with something, the DPM README's When something else owns the hook covers it — a stale link from a previous release, a hook manager that has moved the directory, the pre-commit framework, or a hook of your own to run alongside.
Re-make that symlink after each DPM upgrade, with ln -sf since the old link is in the way. A release installs beside the previous one and re-points nothing, so the link keeps running the version you installed it from. The guard notices — it refuses a database whose schema is newer than it understands, rather than reporting on a comparison it can only half make — but re-linking is yours to do.
A link that has gone missing is the case nothing reports. .git/hooks/ is not tracked, so the link does not survive a re-clone or anything that rewrites the directory — and git skips a hook it cannot find without a warning and without failing the commit. Unlike the stale-link case above, there is no refusal to notice: commits simply go in unchecked. Since 0.5.5 the first tool call of a session looks for the hook and writes one line to stderr when there is nothing there; it warns on absence only, and stays quiet outside a repository, in a linked worktree, and where core.hooksPath has moved the hooks directory. The DPM README's First run has the detail, and two shell functions that fold the manual checks into the linking commands.
The database is created on the first tool call rather than at launch, so a session in a directory that does not use DPM leaves no .dpm/ behind. When one is created, .dpm/.gitignore is written before the database file exists — keeping the binary out of your commits is not a step you perform. On a fresh clone the first tool call finds the committed .dpm/dpm.sql and builds the database from it.
Requires: Node 22.5.0 or later. DPM reaches SQLite through node:sqlite in the standard library — no native module, no node-gyp, no build step.
Companion tool — DPM board: a standalone terminal UI (dpm/tools/board/) showing the state of every project you register — a three-column Projects → Epics → Stories browser — and launching the right /dpm:* session for each without leaving the board. Unlike CPM's board it reads nothing off disk: it is an MCP client, so a blocked epic names its blocker from a dependency row instead of having one guessed from a **Blocked by** line, and it can answer questions a markdown corpus cannot — Ctrl+G lists every requirement no coverage row traces, and a per-project badge carries what check_integrity reported. Servers are spawned read-only, so observing a project leaves it byte-identical. See the board README.
Status: in use, still settling. The skill corpus, the tool surface, the database lifecycle and the board are in place — specs 47-spec-dpm-sqlite-persistence.md, 48-spec-dpm-board.md and 49-spec-dpm-database-lifecycle.md under docs/cpm/specifications/, with the work broken down across docs/cpm/epics/47-*, 48-* and 49-*. Those paths carry cpm/ because this repository has itself migrated from CPM to DPM: the CPM-era planning corpus is parked under docs/cpm/, and docs/ is now DPM's generated output.
View full documentation | Moving to DPM from CPM
JS/TS Simplifier (v1.0.0)
Simplify and improve JavaScript and TypeScript code across an entire codebase
A skill that scans all JS/TS files (or a configurable subset) and applies clarity, consistency, and maintainability improvements while preserving exact functionality. Unlike targeted simplification of recently changed files, this skill works across the whole codebase.
Three parallel analysis agents:
- Modern Syntax — ES2015+ and ES2020+ upgrades (optional chaining, nullish coalescing, async/await, const/let)
- Code Quality — Dead code removal, conditional simplification, naming improvements, error handling
- Structure & Reuse — DRY violations, module organisation, function complexity, async patterns
Quick Start:
# Simplify all JS/TS files in the project
/js-simplify
# Narrow to a specific directory
/js-simplify src/
# Only git-modified files
/js-simplify only changed
# Focus on a specific pattern
/js-simplify focus on async patterns
Key Features:
- Parallel three-agent analysis for comprehensive coverage
- Respects project conventions (CLAUDE.md, ESLint, Prettier, tsconfig)
- Configurable scope — all files, specific directories, globs, or git-changed only
- Safety-first — never changes what the code does, only how it does it
- Flags ambiguous cases for manual review rather than auto-applying
Supported File Types:
.js,.mjs,.cjs,.jsx,.ts,.tsx
Filament Mockup (v1.1.0)
Build high-fidelity Filament v5 admin mockups for stakeholder sign-off
A skill that turns a product brief or spec into a single self-contained HTML file that looks pixel-accurate to a real Filament v5 admin panel — clickable enough to walk a stakeholder through every screen and flow, and throwaway by design (the real Filament build regenerates all of it natively). Mockups use the real captured Filament theme CSS and Filament's exact fi-* markup, so what stakeholders sign off on is what gets built. Not for production Filament code or customer-facing/front-end mockups.
Workflow:
- Capture — lift the compiled theme CSS and design tokens from a real Filament v5 panel
- Inventory — build an FR → screen matrix so every element traces back to a numbered functional requirement
- Build — reuse Filament's exact
fi-*grammar; mark genuinely custom components with themk-namespace - Verify — measure with Playwright rather than eyeballing, then sign off with a coverage audit
- Hand off — write the durable routing table (
docs/mockups/surface-routing.md) so the downstream buildermockup-to-filamentknows which surfaces it owns (works stand-alone — nobrief-to-mockupsprerequisite)
Quick Start:
# Turn a brief/spec into clickable admin screens
create a Filament mockup from docs/specifications/05-spec-admin-panel.md
# Or describe it directly
mock up the admin panel for this PRD
Key Features:
- Single self-contained HTML file — opens by
file://, zero environment to stand up - Maximum fidelity to Filament's real design language (captured theme, Albert Sans, standard layouts)
- Every element traces to a functional requirement — invented UI is flagged, not silently added
- Visible
mk-vsfi-*boundary distinguishes mockup scaffolding from real Filament - Bundled scaffold, capture/verify scripts, and an
fi-*grammar cheat-sheet - Part of the mockup→build family — a producer whose output the builders consume (
mockup-to-filamentfor Filament,mockup-to-bladefor bespoke); emits a routing handoff naming the lane per surface
Requires: Node + Playwright for the capture/verify scripts (npm i -D playwright && npx playwright install chromium).
What's Next (v0.2.2)
A live pane and band showing the cpm-next work left in the current repository
A Claude Code mod (a plugin of function hooks). It reads the docs/epics/ and docs/specifications/ folders of the repository the session runs in — or the nearest folder above it that has either — and shows every story not yet Complete, in the order to build them, and every spec no epic has been planned from yet. It reads the files directly, with no model calls, so it stays current as /cpm-next:do or you edit the epics.
What it shows:
- Pane — the story in progress and its next task, every remaining story in order (
doing,ready, orafter Story 1/after Epic …), and each open epic's story count. Opens by itself in a repository with work left when the terminal is at least 144 columns wide;/nextopens it at any width. - Specs without epics — each spec in
docs/specifications/that no epic was planned from, in number order. A spec counts as planned when an epic is numbered after it (03-spec-…→03-01-epic-…) or an epic names its file in**Source spec**; a spec whose own**Status**isComplete,SupersededorWithdrawnis left out, as is a withdrawal notice (a**Withdrawn**or**Superseded by**field, orWITHDRAWN/SUPERSEDEDin its title). - Band — one line above the prompt with the next story, its next task, and how many stories are left; with no stories left, the first spec to plan.
- Next steps — an
Ask Claudebutton (hotkeya) that asks Sonnet for a short note on what to do next, from the ordered list and the first two stories in full. The note is kept per repository across sessions and dimmed once the epics change after it was written.
Order of execution: stories already In Progress first; then the other stories of epics under way (the epic's own **Status** is In Progress, or one of its stories is); then everything else. Within each group, repeatedly, the ready story with the lowest epic number and story number, treating each as done before choosing the next. So working on a higher-numbered epic out of order moves it to the top once its Status says In Progress. A story is ready when everything its own **Blocked by** and its epic's **Blocked by** name is Complete; epics in docs/archive/epics/ count when resolving those dependencies. Stories whose dependencies can never be met (an unknown epic, a cycle) are listed last.
Quick Start:
/plugin install whats-next@ninthspace-marketplace
/reload-plugins
# Open the pane and print the ordered list into the conversation
/next
Reads: the cpm-next epic format (cpm-next/shared/artifacts.md) — **Status**, **Blocked by**, **Story** and **Task** fields, read case-insensitively, with Done read as Complete. Superseded and Withdrawn epics are skipped.
Develop: claude plugin validate whats-next and claude plugin test whats-next. To run the working tree instead of the installed release, start Claude Code with --plugin-dir whats-next (and uninstall the release, or both draw).
Generated Files (v0.1.1)
A pane listing the files Claude generated this session, each with an Open button
A Claude Code mod (a plugin of function hooks). Skills such as code-to-uml, filament-mockup and the md2docx wrapper write HTML, Office and image files, often into the session scratchpad; this pane collects them so they can be opened without finding the path.
What it records: files with the extensions .html .htm .svg .png .jpg .jpeg .gif .webp .docx .xlsx .pptx .pdf that are
- written or edited with the Write or Edit tools, or
- named in a Bash command and changed while it ran (a leading
cd <dir> &&sets the folder relative paths resolve against). Formd2docxandpandocruns, the.docxbeside each.mdnamed is checked too, since md2docx writes there by default.
What it shows: a "Files" pane, newest first, up to 30 files: each file's name and folder with Open (hotkeys 1–9, macOS open, the default app) and Reveal (shows it in Finder), and a Clear button. The pane opens by itself when the first file is recorded, where the terminal is at least 144 columns wide; /files opens it at any width and prints the list into the conversation. The list covers the current session only.
Quick Start:
/plugin install generated-files@ninthspace-marketplace
/reload-plugins
/files
Requires: macOS (open).
Develop: claude plugin validate generated-files and claude plugin test generated-files.
Weather (v0.1.2)
The current weather for a place you set, in the prompt footer
A Claude Code mod (a plugin of function hooks). Shows the condition and temperature, e.g. ☁️ Overcast 18°C · Inverness, dimmed at the right-hand end of the footer beside the mode labels. Data comes from Open-Meteo (no API key), refreshed every 15 minutes; if a refresh fails, the last reading stays.
Location: the plugin's Location row in /config, default Inverness, GB. A trailing two-letter country code narrows the search: a bare Inverness finds a US Inverness first. Each location is geocoded once and remembered across sessions.
When it fails: with no reading yet, the footer shows weather: <reason> (for example forecast HTTP 503). /weather refreshes at once and prints the reading, or why the refresh failed.
Quick Start:
/plugin install weather@ninthspace-marketplace
/reload-plugins
Develop: claude plugin validate weather and claude plugin test weather.
Removing Plugins (when in Claude Code)
# Uninstall individual plugins
/plugin uninstall noteplan@ninthspace-marketplace
/plugin uninstall php-lsp@ninthspace-marketplace
/plugin uninstall cpm@ninthspace-marketplace
/plugin uninstall dpm@ninthspace-marketplace
/plugin uninstall js-simplifier@ninthspace-marketplace
/plugin uninstall filament-mockup@ninthspace-marketplace
/plugin uninstall whats-next@ninthspace-marketplace
/plugin uninstall generated-files@ninthspace-marketplace
/plugin uninstall weather@ninthspace-marketplace
# Remove the entire marketplace
/plugin marketplace remove ninthspace-marketplace
License
MIT - See LICENSE for details
Contributing
Contributions welcome! Please:
- Follow the existing plugin structure
- Include comprehensive documentation
- Add tests where applicable
- Update the marketplace manifest
- Submit a pull request
Support
For issues or questions:
- Open an issue on GitHub
- Check plugin-specific documentation
- Review the Claude Code plugin docs
Changelog
See individual plugin CHANGELOG.md files for version history.
Author
Chris Aves

