Automates consistency checks and version migrations for Pureinn project workspaces.

Install

mkdir -p .claude/skills/pm-audit && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/17011" && unzip -o skill.zip -d .claude/skills/pm-audit && rm skill.zip

Installs to .claude/skills/pm-audit

Activation

This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.

Health check for an existing Pureinn workspace. Scans the framework's own artifacts - the 4 Live Registers, feature_list, Feature Cards, roadmap, glossary, state.json - against the current Pureinn conventions, finds inconsistencies, drift, and errors, then fixes the mechanical ones and asks about the judgment calls. Detects framework-version drift (artifacts produced by an older Pureinn version) and offers to migrate them. Use when a workspace was built with an older version, after pm-reconcile or pm-reverse-extract, or any time you want to confirm the workspace is internally consistent before continuing. Takes an optional area argument to scope the audit (/pm-audit domain | rules | features), or audits the whole workspace by default. Distinct from pm-reconcile (code vs legacy docs) and pm-reverse-extract (code to inventory) - this checks Pureinn artifacts against Pureinn conventions (Tier 1: form) and cross-checks the strategic layer (PRD, roadmap, personas, market, business model) for semantic consistency, surfacing contradictions read-only and routing each fix to its authoring skill (Tier 2: substance).
1123 chars✓ has a “when” triggerlonger than Claude Code's old 250-char listing cap (fine on current versions)
Intermediate

Key capabilities

  • Scan Pureinn workspace artifacts for inconsistencies
  • Detect framework-version drift in artifacts
  • Fix mechanical inconsistencies in place
  • Surface strategic contradictions for user review
  • Generate an audit report with findings by severity

How it works

The skill scans Pureinn workspace artifacts against current framework conventions, identifies inconsistencies and version drift, automatically fixes mechanical issues, and reports strategic contradictions for user decision.

Inputs & outputs

You give it
An optional area argument (domain, rules, features) or the whole Pureinn workspace
You get back
An `audit/audit_report.md` with findings, mechanical fixes applied in place, and a short AskUserQuestion round for judgment calls

When to use pm-audit

  • Verifying workspace consistency
  • Fixing framework version drift
  • Auditing product management artifacts

About this skill

PM - Audit (Workspace Health Check)

Agent mode (--agent)

Supports --agent: runs autonomously in a subagent, drafts the artifact from existing inputs, and returns a short summary + coverage note.

  • No flag → interactive (default); if inputs are heavy, offer agent mode.
  • --agent → obey. First check inputs are complete. Anything missing: do NOT invent it - mark [ASSUMED - what/why] in the output and summary. Never hallucinate to fill a gap.

What this skill does

Scans an existing Pureinn workspace and reports - then fixes - where its own artifacts drifted from the current framework conventions. It is the productized version of a manual consistency pass: ID and naming integrity, cross-reference resolution, structural conformance, lifecycle validity, completeness, and framework-version drift (artifacts from an older Pureinn version that miss newer fields or use old names).

Two tiers, two different jobs:

  • Tier 1 - Form. Naming, IDs, cross-refs, lifecycle, schema, metadata parity. Mechanical - auto-fixed in place. This is the classic audit.
  • Tier 2 - Strategic consistency (substance). Does the strategic layer still agree with itself and with the research it was built on - PRD Target Customer vs. personas, value prop vs. research pains, roadmap phases vs. feature phases, pricing vs. WTP? This tier is read-only: it never auto-edits strategic content (that is a business decision). It surfaces each contradiction as [CONFLICT] and routes the fix to the authoring skill (pm-prd, pm-product-roadmap, pm-business-model, ...), which re-runs in delta mode. Run Tier 2 after a research injection or strategic pivot, and before a build commitment or pitch.

Run it when:

  • A workspace was built with an older Pureinn version and you want it brought current
  • Right after pm-reconcile or pm-reverse-extract, as a verification pass
  • Any time before continuing work, to confirm the workspace is internally consistent

Produces:

  1. audit/audit_report.md - findings by severity (P0-P3), scored
  2. Mechanical fixes applied in place (with a diff summary)
  3. A short AskUserQuestion round for every judgment call

It checks Pureinn artifacts against Pureinn conventions - it does not read the codebase or legacy docs (that is pm-reconcile / pm-reverse-extract).


Position vs. related skills

SkillInput → output
pm-reconcilecodebase vs legacy docs → reconciled rebuild
pm-reverse-extractcodebase → feature inventory
pm-auditPureinn artifacts vs Pureinn conventions → drift/error fix

pm-reconcile and pm-reverse-extract hand off to pm-audit as their verification step.


What this skill does NOT do

  • Read the codebase or legacy documents (that is reconcile / reverse-extract)
  • Change business decisions or rule values - only structure, naming, references, and conformance. Tier 2 may report a strategic contradiction, but it never resolves it - resolving means choosing between two business claims, which belongs to the authoring skill in delta mode.
  • Generate new artifacts that do not exist - it audits what is there (a missing artifact is a finding, not something it invents)

Dependencies

  • A Pureinn workspace exists: pureinn-workspace/[project-slug]/ with at least state.json and some artifacts.

If no workspace is found, do not guess. Tell the user to run /pureinn first (greenfield) or /pm-reverse-extract / /pm-reconcile (existing product).


Scope (whole workspace or one area)

pm-audit takes an optional area argument, mirroring pm-reconcile's per-area model:

CommandAudits
/pm-auditWhole workspace (default) - all artifacts
/pm-audit domaindomain/entities.md + domain/domain-model.md (structure, entity/state naming, ERD ↔ entities consistency)
/pm-audit rulesdomain/business_rules.md + domain/decision_models.md (BR/TBL IDs, rule↔entity refs, decision-table completeness)
/pm-audit featuresfeatures/feature_list.md + features/cards/ (card structure, FS-NN, Section-1 BR-ID refs resolve, lifecycle status)
/pm-audit open-questionsdomain/open_questions.md (ID hygiene, Type↔prefix match, no duplication of open-item text elsewhere in the workspace)
/pm-audit strategyTier 2 only - cross-artifact strategic consistency (PRD ↔ personas ↔ roadmap ↔ market ↔ business model ↔ feature phases). Read-only, routes fixes to authoring skills.
/pm-audit [other]any single artifact the user names

Tier scoping: area scopes (domain, rules, features, open-questions) run Tier 1 only. strategy runs Tier 2 only. The default whole-workspace run does both tiers.

When an area is given, scan and report only that area's artifacts (plus their direct cross-references - e.g. features checks that BR-IDs in cards resolve into business_rules.md, without auditing the rules themselves). When no area is given, audit everything. If the user states a scope in plain language, honour it (per the Adaptive-execution standard).


Step 0: Locate workspace + detect version

Determine the scope first (from the argument or the user's request - default whole workspace). Then find the workspace and inventory the artifacts in scope:

ArtifactPresent?
state.json
domain/entities.md, business_rules.md, decision_models.md
features/feature_list.md + features/cards/
product/PRD_master.md
roadmap, glossary

Version-drift signals (detect an older-framework workspace). This is the concrete migration checklist - an artifact produced by an older Pureinn version will carry one or more of these; scan for each literally, not just "convention drift" in the abstract:

  • Old lifecycle state names (1_Walkthrough, 2_Design, 3_Design_Inspection_Passed, 4_Build, 5_Code_Inspection, 6_Promoted_to_Build)
  • Old hierarchy terms (Subject Area, Major Feature Set) or bare FS-ID without FS-NN: Name
  • Missing newer Feature Card fields (feature_set, estimate) or the ## Subtasks section
  • Notion cache key notion.* instead of notion_ids.*
  • Feature Card prd_ref pointing at the old PRD path - prd_ref: /product/PRD.md#... (or the missing-slash variants product/PRD.md#... / bare PRD.md#...). Older versions saved the PRD as PRD.md; the canonical save path is now product/PRD_master.md, so every old card carries a dead reference to a file that no longer exists. Migrate to prd_ref: /product/PRD_master.md#... (preserve the #section anchor). Initiative-PRD refs (/initiatives/[slug]/prd.md#bc-...) are a separate valid form - leave them.
  • A separate MVP-membership field (mvp: true/false, roadmap_phase:, or an "MVP" column) instead of the single canonical phase axis
  • layer: fullstack instead of the explicit layer set (frontend, backend, system)
  • Reconcile-reality words (Built / In Progress / Backlog) sitting in a status/Status field instead of a canonical lifecycle value

Interaction: Group related questions (2-4 per round) and confirm before moving on. For any A/B/C/D choice, use the AskUserQuestion tool with one option marked (Recommended) - never print options as plain text. Keep open-ended questions free-text (don't fake options). If the user is unsure, propose 3-4 concrete options plus "Other". Surface an assumption the moment you make one; never fabricate to fill a gap. (Full standard: CLAUDE.md.)


Step 1: Scan

Read every artifact in scope (Step 0) and run the checks below - for an area scope, only that area's artifacts and their direct cross-references; for whole-workspace, all of them. Collect findings; do not fix yet.

DimensionWhat is checked
StructureFeature Cards match the canonical template (sections 1-4 + Subtasks; frontmatter: id, title, status, stripe, feature_set, actor, owner, priority, estimate, prd_ref, feature_flag, flag_default). Registers match current format and header.
ID & namingFEAT/BR/TBL/FS IDs well-formed (FEAT-[DOMAIN]-NNN, BR-[DOMAIN]-NNN, TBL-[DOMAIN]-NN, FS-NN) and unique. The naming check is mandatory and must actually run over every feature name - report its result explicitly (even "0 anti-patterns found") so a silent skip is visible. Each name must be <action verb> <result> <object> with a strong verb and an object = a domain entity. Flag every violation: (a) vague/banned verbs Process / Manage / Handle (and similar non-specific verbs); (b) technical objects - the object is an implementation construct not a domain entity (e.g. "...state machine", "...FSM", "...queue", "...flag", "...handler"); (c) the other FDD anti-patterns (bundled multi-op, missing object, CRUD-as-feature, etc.). A naming anti-pattern on an active feature is a P1 finding. Report each as [FEAT-ID] "name" → [which anti-pattern] → suggested rename.
Cross-referencesEvery BR-ID / TBL-ID / entity link in a Feature Card resolves to the register. feature_set matches feature_list. stripe is a real stripe. prd_ref resolves - it must point at product/PRD_master.md (or an /initiatives/[slug]/prd.md for an Initiative PRD); a prd_ref still pointing at /product/PRD.md (or product/PRD.md / bare PRD.md) is a dead reference to the old PRD path and is drift (P1 - JIT design reads this file). No dangling links.
Lifecyclestatus is one of the canonical states (1_Backlog, 2_Spec_Done, 2b_In_Design, 3_Ready_to_Build, 4_In_Build, 5_In_Review, 6_Shipped) everywhere - frontmatter, feature_list, and Notion use the same single vocabulary. No orphaned or invalid states. 2b_In_Design is valid only for a feature whose layer includes frontend - a pure backend/system feature in 2b_In_Design is drift (P2: it has no UI to design). **Reconcile-reality words

Content truncated.

When not to use it

  • When the user needs to read the codebase or legacy documents
  • When the user needs to change business decisions or rule values
  • When the user needs to generate new artifacts that do not exist

Prerequisites

A Pureinn workspace exists: `pureinn-workspace/[project-slug]/` with at least `state.json` and some artifacts.

Limitations

  • Does not read the codebase or legacy documents
  • Does not change business decisions or rule values
  • Does not generate new artifacts that do not exist

How it compares

This skill provides a specialized health check for Pureinn workspaces, focusing on internal consistency and framework versioning, unlike general code reconciliation or inventory extraction tools.

Compared to similar skills

pm-audit side by side with the closest alternatives in the catalog.

SkillInstallsUpdatedSafetyDifficulty
pm-audit (this skill)01moNo flagsIntermediate
docx935moReviewAdvanced
notion-knowledge-capture109moNo flagsIntermediate
session-handoff132moReviewBeginner

Try saying

Example prompts that trigger this skill in your AI assistant.

You might also like

docx

anthropics

Comprehensive document creation, editing, and analysis with support for tracked changes, comments, formatting preservation, and text extraction. When Claude needs to work with professional documents (.docx files) for: (1) Creating new documents, (2) Modifying or editing content, (3) Working with tracked changes, (4) Adding comments, or any other document tasks

93225

notion-knowledge-capture

makenotion

Transforms conversations and discussions into structured documentation pages in Notion. Captures insights, decisions, and knowledge from chat context, formats appropriately, and saves to wikis or databases with proper organization and linking for easy discovery.

10115

session-handoff

davila7

Creates comprehensive handoff documents for seamless AI agent session transfers. Triggered when: (1) user requests handoff/memory/context save, (2) context window approaches capacity, (3) major task milestone completed, (4) work session ending, (5) user says 'save state', 'create handoff', 'I need to pause', 'context is getting full', (6) resuming work with 'load handoff', 'resume from', 'continue where we left off'. Proactively suggests handoffs after substantial work (multiple file edits, complex debugging, architecture decisions). Solves long-running agent context exhaustion by enabling fresh agents to continue with zero ambiguity.

1370

feishu-doc

openclaw

Feishu document read/write operations. Activate when user mentions Feishu docs, cloud docs, or docx links.

1464

spec-to-backlog

atlassian

Automatically convert Confluence specification documents into structured Jira backlogs with Epics and implementation tickets. When Claude needs to: (1) Create Jira tickets from a Confluence page, (2) Generate a backlog from a specification, (3) Break down a spec into implementation tasks, or (4) Convert requirements into Jira issues. Handles reading Confluence pages, analyzing specifications, creating Epics with proper structure, and generating detailed implementation tickets linked to the Epic.

868

marker

benchflow-ai

Convert PDF documents to Markdown using marker_single. Use when Claude needs to extract text content from PDFs while preserving LaTeX formulas, equations, and document structure. Ideal for academic papers and technical documents containing mathematical notation.

2248

Search skills

Search the agent skills registry