Skip to main content

featureaudit

Forensic feature completeness audit v1 (Gestalt-Popper). 19-phase deep analysis of what EXISTS vs what SHOULD exist: PRD gap analysis, competitive parity, feature depth scoring, discoverability, coherence between features, edge case completeness, API surface gaps, missing obvious capabilities, plus verdict, implementation plan, execution, and re-audit. Answers: "Is this product COMPLETE?" Score /320. Preamble v1.0 compliant. Audit → Plan → Implement → Re-audit. Use when user says "/featureaudit", "what's missing", "feature gap", "is the product complete", "compare to PRD", "what should we build next", "feature audit".

インストールへ移動

ソース情報

リポジトリ
agentik-os/OmegaOS
ソースの最終更新活動
2026年8月11日 21:37
検出された SKILL.md の言語
英語
スター
11
フォーク
2

インストール方法

デフォルトでは、最初にソースを確認する Prompt が選択されています。直接コマンドに切り替えるか、ローカルコピーをダウンロードすることもできます。

ソースファイルを確認

インストールを決める前に、SKILL.md と SkillsMP に表示されている付属ファイルをお読みください。

SKILL.md を表示中

SKILL.md
ソースの指示 · 読み取り専用プレビュー
name
featureaudit
description
Forensic feature completeness audit v1 (Gestalt-Popper). 19-phase deep analysis of what EXISTS vs what SHOULD exist: PRD gap analysis, competitive parity, feature depth scoring, discoverability, coherence between features, edge case completeness, API surface gaps, missing obvious capabilities, plus verdict, implementation plan, execution, and re-audit. Answers: "Is this product COMPLETE?" Score /320. Preamble v1.0 compliant. Audit → Plan → Implement → Re-audit. Use when user says "/featureaudit", "what's missing", "feature gap", "is the product complete", "compare to PRD", "what should we build next", "feature audit".
allowed-tools
["Read","Write","Edit","Bash","Glob","Grep","Agent","TaskCreate","TaskUpdate","TaskList","TaskGet","WebSearch"]
domain
features
phases
19
max_score
320
read_only
false
triggers
["feature","feature audit","completeness","what's missing","feature gap"]
<!-- AUDIT-META-V2-INJECTED --> > ## ⚠️ MANDATORY FIRST STEP — READ THE V2 META-PROTOCOL > > **Before doing ANYTHING else**, Read `../_shared/audit-meta-protocol-v2.md`. > > That file overrides any conflicting guidance below for these five aspects: > 1. Required CLI inputs (`--user-need`, `--hinge` are MANDATORY since 2026-05-08) > 2. Required JSON output schema (v2: score + confidence + falsifiable_tests + user_need_match + hinge_findings) > 3. Popper falsification — every PASS must cite ≥3 concrete commands run with actual output > 4. Confidence calibration — `high` requires direct verification of every claim > 5. Banned shortcut phrases — `looks correct`, `should be fine`, `appears to work` = automatic FAIL > > If `--user-need` or `--hinge` is missing from your invocation, refuse to run and write > `{"score":0,"confidence":"low","error":"missing v2 inputs","request_redispatch":true}`. > > The legacy v1 schema (`{"score":100,"skill_used":"<name>"}`) is accepted with a warning until 2026-06-01, > then removed. Always emit v2 going forward. > > Model context: this audit runs on Opus 4.7 with max effort. There is no time pressure. > Run every test you claim to have run. Cite verbatim outputs. No exceptions. --- # /featureaudit v1 — Forensic Feature Completeness (Gestalt-Popper) > *"The 4 other audits ask 'is what exists correct?' I ask 'does what SHOULD exist actually exist?'"* --- ## DOCTRINE You are not a product manager. You are a **feature prosecutor**. The product is on trial for incompleteness. Every missing feature is a broken promise. Every shallow implementation is a half-truth. Every "coming soon" is a confession of failure. **The 5 Laws of Feature Forensics (Gestalt-Popper Synthesis):** 1. **The PRD is the law.** If VISION.md/PRD promises a feature and it doesn't exist, that's a CONVICTION. If no PRD exists, the user's reasonable expectations ARE the PRD. 2. **Shallow is worse than missing.** A feature that exists but only handles the happy path is a trap. Users discover the edge cases. They always discover the edge cases. 3. **Competitors set the baseline.** If every competitor has feature X and you don't, users don't think "they chose not to build it." They think "it's broken." 4. **Clarity before counting (Gestalt).** Before listing features, UNDERSTAND the product's purpose. Read VISION.md. Identify the **HINGE CAPABILITY** — the ONE thing this product must do better than anything else. If the hinge capability is incomplete, nothing else matters. 5. **Falsify completeness (Popper).** The product claims to be "ready" or "launched" or "v1." DISPROVE this claim. Find every gap, every stub, every "we'll add that later." The product is incomplete until proven complete. **Popper Feature Falsification Categories:** - **PROMISED vs BUILT** — PRD says "real-time sync" but it polls every 30s - **VISIBLE vs FUNCTIONAL** — menu item exists but page is empty - **SHALLOW vs DEEP** — "export" exists but only exports CSV (not PDF, not Excel) - **LABELED vs CAPABLE** — "advanced search" has 2 filters (basic search has 1) - **MARKETED vs DELIVERED** — landing page says "AI-powered" but it's rule-based --- ## SCOPE DETECTION (automatic) ``` EXAMPLES: "/featureaudit" → Full 16-phase pipeline. Inventory everything, compare to PRD. "/featureaudit vs competitors" → COMPETITIVE mode: research competitors, gap analysis "/featureaudit the dashboard" → TARGETED: only dashboard features "/featureaudit what's missing for launch" → LAUNCH READINESS: focus on must-haves vs nice-to-haves "/featureaudit depth check on auth" → DEPTH mode: one feature area, exhaustive edge case testing ``` --- ## CANONICAL RUNNER GATE Before Phase 0, invoke `~/.omega/lib/audit-runner.sh feature "<absolute-project-path>" --files="<scoped-files>" --user-need="<verbatim-user-need>" --hinge="<load-bearing-region>"` (plus `--ticket` and `--url` together when ticket-scoped). A non-zero exit is an audit failure. Read the emitted `audits/.featureaudit/evidence-summary.json` before analysis, then rerun the same invocation with `--finalize` after writing `verdict.json`. ## OUTPUT CONTRACT ``` audits/.featureaudit/ ├── session.log ├── discovery/ │ ├── feature-inventory.json # Every feature found in code │ ├── prd-features.json # Features promised in PRD/VISION │ ├── competitor-features.json # Features competitors have │ └── gap-matrix.md # Visual gap analysis ├── reports/ │ ├── prd-compliance.md # Phase 1 │ ├── feature-depth.md # Phase 2 │ ├── feature-discoverability.md # Phase 3 │ ├── feature-coherence.md # Phase 4 │ ├── edge-case-coverage.md # Phase 5 │ ├── api-surface.md # Phase 6 │ ├── competitive-parity.md # Phase 7 │ ├── empty-implementations.md # Phase 8 │ ├── configuration-gaps.md # Phase 9 │ ├── documentation-gaps.md # Phase 10 │ ├── permission-matrix.md # Phase 11 │ ├── data-model-gaps.md # Phase 12 │ ├── integration-gaps.md # Phase 13 │ ├── scaling-readiness.md # Phase 14 │ ├── accessibility-features.md # Phase 15 │ └── feature-entropy.md # Phase 16 ├── verdict.json ├── verdict.md ├── implementation-plan.json # Prioritized features to build ├── implementation-plan.md ├── progress.json └── build-log.md ``` --- ## PHASE 0: PRODUCT RECONNAISSANCE > *"Know what the product SHOULD be before judging what it IS."* ``` 1. VISION & PRD EXTRACTION → Read VISION.md, PRD.md, README, CLAUDE.md → Extract every promised feature, capability, user story → If no PRD exists: infer expected features from the product type (e.g., SaaS dashboard → expect: auth, CRUD, search, export, settings) 2. CODE FEATURE DISCOVERY → Scan all routes/pages → feature per route → Scan all API endpoints → capability per endpoint → Scan all commands/handlers → interaction per handler → Scan all database tables/schemas → entity per table → Build: ACTUAL feature inventory from code (not docs) 3. HINGE CAPABILITY IDENTIFICATION → What is this product's reason to exist? → What's the ONE thing it must do exceptionally well? → This capability gets 10x scrutiny in every phase ``` --- ## PHASE 1: PRD COMPLIANCE AUDIT > *"The PRD is a contract with your users. Honor it or rewrite it."* ``` FOR EACH feature/capability in PRD or VISION: 1. EXISTS? — Is it implemented in code? (not just a page, but functional) 2. COMPLETE? — Does it handle all described scenarios? 3. MATCHES SPEC? — Does it work AS described? (not a different interpretation) 4. ACCESSIBLE? — Can users actually find and use it? EVIDENCE OF COMPLETION (what counts as "done"): - Route exists AND renders non-placeholder content - Handler persists data to the real backend (not in-memory stub) - Happy path traced end-to-end in code (UI → API → DB → UI refresh) - All PRD-listed sub-requirements have matching code branches - Feature survives a basic Playwright smoke test (click → assert result) - Error states and empty states are coded, not left as TODO NOT evidence: TODO comments, commented-out code, "coming soon" strings, feature flags permanently off, routes returning 404/501. SPECIFIC CHECKS: - grep PRD headings → for each, find a matching file/route/handler - grep "TODO|FIXME|XXX|HACK|coming soon|not implemented|stub" in src - Diff PRD user stories vs implemented routes: 1:1 mapping required - For each "MUST" in PRD: must have a passing test or live usage - For each acceptance criterion: must map to a code assertion SCORING per feature: 10 — Fully implemented, exceeds spec, tests pass, edge cases handled 8 — Fully implemented, matches spec, happy path + main edge cases 6 — Implemented but missing edge cases (zero/many/error states) 4 — Partially implemented (happy path only, no error handling) 2 — Stub/placeholder exists (route present, no real logic) 0 — Missing entirely (PRD promise with no code trace) SEVERITY: CRITICAL — Missing feature marked MUST in PRD, or hinge capability gap HIGH — Missing feature marked SHOULD, or shallow hinge capability MEDIUM — Shallow MUST-feature (works but thin) LOW — Missing "nice to have" or cosmetic gap EXAMPLE FINDING: [CRITICAL] PRD §3.2 "Real-time collaboration" — NOT IMPLEMENTED Evidence: No websocket/SSE code in src/, no Yjs/Liveblocks import, document.tsx uses local state only. PRD promises "see collaborators' cursors" — zero matches for "cursor"/"presence" in codebase. Impact: Core selling point on landing page is a lie. Fix: Integrate Liveblocks or Yjs, add presence layer, cursor overlay. OUTPUT: Feature compliance matrix (feature × evidence × score × severity) ``` --- ## PHASE 2: FEATURE DEPTH SCORING > *"A feature isn't done when it works. It's done when it works for everyone, everywhere, every time."* ``` FOR EACH implemented feature, score DEPTH across 5 dimensions (0-10 each): 1. HAPPY PATH DEPTH (0-10) Rubric: 0 — Crashes or returns nothing on the primary use case 2 — Works but no feedback, no loading state, silent success 4 — Works with basic UI feedback, no perceived quality 6 — Works with loading/success/error states and polish 8 — Works fast (<200ms perceived), optimistic UI, clear outcome 10 — Works beautifully: optimistic UI, undo, animations, delight Checks: - Measure latency with network throttle on (Slow 3G) - Is there a loading indicator within 100ms? - Is success confirmed visually AND textually? - Is the user's next logical action suggested? 2. EDGE CASE DEPTH (0-10) Rubric: 0 — Any non-happy input breaks the feature 3 — Handles empty/null input without crashing 6 — Handles zero/one/many + special chars 8 — Handles overflow (10k items), long text, CJK/emoji 10 — Concurrent users, offline recovery, race conditions tested Apply the Universal 10 (see Phase 5). 3. ERROR HANDLING DEPTH (0-10) Rubric: 0 — Silent failure or raw stack trace 3 — Generic error message ("Something went wrong") 6 — Specific error with suggested fix 8 — Specific error + auto-retry + work preserved 10 — Graceful degradation + full recovery path + telemetry Checks: - Kill the network mid-action. What happens? - Send 401 / 403 / 429 / 500 from API. Each rendered clearly? - Is user input preserved on error (no data loss)? - Is there a "retry" affordance? 4. CONFIGURATION DEPTH (0-10) Rubric: 0 — No configuration, one-size-fits-none 3 — Hardcoded defaults, no user control 6 — Basic settings exposed in UI 8 — Sensible defaults + granular overrides + reset button 10 — Per-workspace + per-user + per-device preferences, synced Checks: - Can a power user customize without editing code? - Are defaults good enough that 80% of users never touch settings? - Is configuration discoverable (not buried in Settings > Advanced > Hidden)? 5. INTEGRATION DEPTH (0-10) Rubric: 0 — Feature is a silo, data trapped 3 — Manual copy-paste between this and other features 6 — Data flows to 1-2 related features 8 — Full bidirectional sync with related features 10 — Public API + webhooks + export + third-party integrations Checks: - Can data from this feature be used in Feature B without re-entry? - Is there an export (CSV/JSON/PDF)? - Is there an API endpoint for this feature? - Do webhooks fire on key events? TOTAL DEPTH per feature: /50 GRADING: 45-50 — SHIP-READY (deep feature) 35-44 — USABLE (core works, corners rough) 25-34 — SHALLOW (happy path only) 15-24 — DEMO-WARE (looks good, falls apart on use) 0-14 — BROKEN PROMISE ``` --- ## PHASE 3: FEATURE DISCOVERABILITY > *"A feature nobody finds is a feature nobody uses."* ``` FOR EACH feature: 1. NAVIGATION PATH → How many clicks from the main page to reach it? → Is it in the primary navigation? Secondary? Hidden in settings? → Does the label clearly describe what it does? 2. PROGRESSIVE DISCLOSURE → Do advanced features appear only when needed? → Are basic features immediately visible? → Is there a clear hierarchy: essential → useful → advanced? 3. ONBOARDING AWARENESS → Is the feature mentioned in onboarding/first-run? → Are there tooltips or contextual help? → Would a new user know this feature exists? 4. SEARCH/COMMAND ACCESS → Can the feature be found via search? (cmd+k, search bar) → Are there keyboard shortcuts? → Is it mentioned in help/docs? ``` --- ## PHASE 4: FEATURE COHERENCE > *"Features that don't talk to each other aren't features. They're silos."* ``` 1. DATA FLOW BETWEEN FEATURES → Can data created in Feature A be used in Feature B? → Is there copy-paste between features? (should be integrated instead) → Are there duplicate data entry points? (same info entered twice) 2. PATTERN CONSISTENCY → Do similar features work the same way? (all lists sort the same, all forms validate the same) → Are interaction patterns consistent? (all deletes confirm, all saves auto-save or all require button) → Is terminology consistent? (not "project" here and "workspace" there) 3. CROSS-FEATURE WORKFLOWS → Can users complete multi-feature workflows smoothly? → Are there handoff points between features? (finish creating → auto-navigate to detail) → Are there cross-feature shortcuts? (from invoice → go to customer → go to project) ``` --- ## PHASE 5: EDGE CASE COMPLETENESS > *"The feature works with 3 items. What about 0? 1? 10,000?"* ``` THE UNIVERSAL 10 EDGE CASE CHECKLIST (apply to every feature): 1. ZERO STATE — No data yet. - Is there an empty state component? Or just a blank screen? - Does it teach the user what to do next? (CTA present?) - Does it crash on map/length/filter of undefined? Pattern grep: `\.map\(` / `\.length` without `?.` or null check 2. ONE STATE — Single item. - Layout correct? Singular "1 item" (not "1 items")? - Pagination hidden? Or showing "1-1 of 1"? - Actions apply? (can you delete the only item?) 3. FEW STATE — 3-5 items. Normal operation baseline. 4. MANY STATE — 100+ items. - Pagination, virtual scroll, or lazy load present? - Does the page freeze? (measure TTI with 100 items) - Sort/filter still fast? (<500ms) 5. OVERFLOW — 10,000+ items. - Does the browser OOM? - Is there a hard cap? Is it communicated? - DB query plan — indexed? or full scan? 6. SPECIAL CHARS — Test payload: `<script>alert(1)</script>&"'\n\t漢字🔥` - Preserved in DB (not stripped)? - Rendered safely (not XSS)? - Searchable (CJK full-text)? - CSV export escapes correctly? 7. LONG TEXT — 10,000+ character input. - Truncated in list view with "..."? - Full text accessible in detail view? - No layout break (overflow: hidden or word-break)? - Does the API reject with clear 413? Or accept silently then crash? 8. CONCURRENT — Two users, same feature, same second. - Optimistic locking? Version field? Last-write-wins? - Merge conflict UI? Or silent overwrite? - Websocket updates propagate? 9. MOBILE — Same feature on phone (375×667 viewport). - Touch targets ≥44×44px? - Modals/drawers full-screen on mobile? - Hover states have touch equivalents? - Keyboard doesn't cover input field? 10. OFFLINE — Network drops mid-feature (DevTools → Offline). - Is there an offline indicator? - Are writes queued? Or lost? - On reconnect: auto-retry or manual? - No infinite spinner (timeout after 10s)? BONUS EDGE CASES (high-signal, rare checks): - TIMEZONE — user in Tokyo, server in UTC. Dates correct? - LOCALE — numbers "1.234,56" vs "1,234.56" — parsed correctly? - CLOCK SKEW — client time 5 minutes off. JWT expiry respected? - TAB RESTORE — browser restart, session intact? - BACK BUTTON — mid-flow back. State preserved or broken? SEVERITY: CRITICAL — Crashes, data loss, security (XSS, injection) HIGH — Functionally broken (zero state blank, overflow freezes) MEDIUM — UX bug (pluralization, truncation missing) LOW — Polish (empty state not illustrated) EXAMPLE FINDING: [HIGH] /projects page — Zero state is blank white screen Evidence: src/app/projects/page.tsx line 34: `return projects.map(p => <ProjectCard />)` No guard for `projects.length === 0`. New users land on blank page, no CTA, no illustration, no "Create your first project" button. Fix: Add <EmptyState> component with CTA before the map. ``` --- ## PHASE 6: API SURFACE COMPLETENESS > *"If it's not in the API, it doesn't exist for power users."* ``` 1. CRUD COVERAGE FOR EACH entity: → Create endpoint exists? → Read (single + list) endpoints exist? → Update endpoint exists? → Delete endpoint exists? → Any CRUD operations missing? 2. QUERY CAPABILITIES → Filter by each field? Or only some? → Sort by each field? Or only some? → Pagination? Cursor or offset? → Full-text search? → Date range queries? 3. BULK OPERATIONS → Bulk create? Bulk update? Bulk delete? → Import/export via API? → Rate limits documented? 4. WEBHOOK/EVENT COVERAGE → Events emitted for each CRUD operation? → Can external systems react to changes? ``` --- ## PHASE 7: COMPETITIVE PARITY ANALYSIS > *"Your users came from somewhere. They expect what they had."* ``` 1. IDENTIFY TOP 3 COMPETITORS → Same category, similar target user → Research: marketing pages, docs, G2/Capterra reviews, Reddit threads → Ask: "What does this competitor's onboarding show off?" 2. FEATURE MATRIX | Feature | Us | Comp 1 | Comp 2 | Comp 3 | Classification | | Dark mode | YES | YES | YES | YES | TABLE STAKES | | Export to PDF | NO | YES | YES | YES | TABLE STAKES ← GAP | | Team workspaces | YES | YES | NO | YES | MAJORITY | | AI summary | YES | NO | NO | NO | DIFFERENTIATOR | Mark each: YES / PARTIAL / NO / BETTER 3. TABLE-STAKES vs DIFFERENTIATOR FRAMEWORK TABLE STAKES = features ALL 3 competitors have → Missing any = CRITICAL gap. Users will churn. → These are NOT features. They are expectations. → Examples: dark mode, search, keyboard shortcuts, export, API, SSO → Rule: Match table stakes before adding differentiators. MAJORITY = features 2 of 3 competitors have → Missing = HIGH gap. Users will notice. → Acceptable to skip if explicit strategic decision. MINORITY = features 1 of 3 competitors have → Optional. Build if it fits hinge capability. DIFFERENTIATORS = features ONLY you have → Must be prominent in marketing (hero section, onboarding) → If hidden, differentiator is wasted → Rule: Every differentiator gets 3x the UI real estate 4. SWITCHING COST AUDIT → Can users import from each competitor? (CSV, API, OAuth) → Is there a "switch from X" landing page? → Does the UI use vocabulary familiar to switchers? 5. REVIEW MINING → Read top 20 reviews of each competitor → Extract their #1 complaint → can we solve it? → Extract their #1 praise → do we match or beat it? SEVERITY: CRITICAL — Missing table-stakes feature HIGH — Missing majority feature OR differentiator hidden from UI MEDIUM — Feature matches competitor but UX is worse LOW — Missing minority feature with no user demand signal EXAMPLE FINDING: [CRITICAL] No "Export to PDF" — all 3 competitors have it
GitHubで見る
この SKILL.md は非常に大きいため、SkillsMP では最初のセクションだけを表示しています。 GitHubで見る