pendo-io/novus
Novus skills for coding agents: UX review and evidence-backed next-work and portfolio investment decisions, powered by Pendo product analytics.
Changelog
0.6.0 — unreleased
ux-reviewnow applies the team's UX review instructions when Novus is connected, matching the pull request review: the custom instructions from the PR Workflows settings page (getPrWorkflowSettings) are followed alongside the heuristics, and theux-reviewpreferences in the product wiki (listArtifactsByType+getArtifact, including the ones Novus learns from developer replies on PR comments) are binding and suppress concerns they already answer. A finding raised by an instruction says so in its technical detail; a suppressed one is not mentioned. Both reads are skipped silently on failure and the not-connected path is unchanged. Active severity levels are read but not used to filter — they gate what gets posted to a pull request, and a local review is for the developer.ux-reviewcan save a UX review preference on explicit request — a durable product fact viasaveUserInstruction(categoryux-review), or reviewer steering viaupdatePrWorkflowSettings.uxReviewCustomInstructions(read first, merged with the existing text, 2,000-character cap) — only after the user confirms the exact text and target, the conventionusage-briefset. It is now the second skill in the plugin that writes;usage-briefwas the only one.
0.5.1 — unreleased
- Realign every skill with the tool names the Novus MCP server actually serves. Novus retired
getPageMetrics,getFeatureMetrics,getTrackEventMetrics,getFunnelAnalysis, andgetPageRetentionon 2026-08-19 (they were segment-blind); the skills now name their replacementsgetArtifactMetrics,getFunnelAnalytics, andgetRetentionCohorts, all of which take Novus artifact UUIDs directly, sogetExternalIdsis no longer a prerequisite for metrics. ux-review: the connection check has two states, connected or not. The old "declared but not signed in" state keyed off anauthenticatetool that has never existed — Novus MCP signs in through the host's OAuth flow and an unauthenticated server advertises no tools — so the footer now covers both a signed-out and a missing server in one line without steering a signed-out user to install a second server.
0.5.0 — unreleased
-
build-impactnow defaults to Build Value, a product-area report connecting related team contributions to customer benefit. Specific-change decisions and explicitly requested individual reports remain available under the same command. Added examples and guidance for eligible adoption, staggered releases, and incomplete workflows. -
build-investmentcan recommend sustaining investment or deferring judgment. It now considers strategic shifts, future audiences, stale planning dates, and fixed release commitments, and supports requested audience formats. -
Build and usage reports check identity migrations before interpreting growth, distinguish unreleased branch work from customer exposure, and recognize efficiency and reliability benefits without requiring usage growth.
-
Updated report instructions to use direct sentences, concrete customer outcomes, and nearby evidence limits.
-
usage-briefrefocused on product usage. It now leads with the current usage of the area a change touches (reach as a share of active users, top accounts, internal/test/researcher traffic separated out), then reads whether the change has potential to grow that usage — headroom, the lever it pulls (new users vs. deeper use), the number that would show it worked, and any known friction it closes. The testability / verification-emphasis output was removed. -
usage-briefcan now post the brief as a comment on the PR (or the linked Linear/Jira ticket) — the only skill in the plugin that writes, and only after the user confirms the exact text and target. Degrades to "here's the comment to paste" when no PR/ticket resolves or there is no write access. The other skills remain strictly read-only.
0.3.1 — unreleased
usage-brief: render a plain-language, product-voice brief instead of a labelled/enum report. The skill still reasons in theHEAVY/STANDARD/LIGHTand adoption/stickiness tiers internally, but renders them as plain sentences, describes the risky path by what it does (not by function/service names), and shows the measurability line only when a change's impact is not cleanly measurable. Realigns the skill to the repo's house voice ("lead with user impact; keep engineering specifics out of the way") after a live run read like an engineering audit.
0.3.0 — unreleased
verify-instrumentationskill: read-only measurement-trust check over a six-link chain (arrival, recognition, definition, continuity, audience, decision-critical coverage), returningTRUSTED/DEGRADED/UNTRUSTED/UNKNOWNand the single smallest repair. This is the sub-checkbuild-impactalready referenced; it never renders zero events as zero use, treats a missing artifact as broken, or adds instrumentation itself.usage-briefskill: pre-build read of a change's associated surfaces — usage (reach as a share of active users, top accounts and visitors, journey), an adoption-vs-stickiness classification, and one verification-emphasis verdict (HEAVY/STANDARD/LIGHT) modified by reachability, account concentration, and trend so low traffic is not mistaken for low risk. Carries averify-instrumentationverdict so it can flag when a change's own impact will not be measurable. Read-only.scripts/set-version.shandscripts/check-version.sh: set and verify the plugin version in lockstep across the five manifests that carry it (previously edited by hand, with no guard against drift).
0.1.0 — unreleased
First release.
ux-reviewskill: pre-PR UX review of local changes, with Novus product analytics through the Novus MCP server and graceful degradation to code-observable findings when the server is not connected.whats-nextskill: current-work steering backed by engineering context, Novus customer evidence, and either Novus-native or directly connected Linear/Jira planning data, with a graceful no-roadmap fallback.build-investmentskill: portfolio-level comparison of planned, built, and experienced investment, with one evidence-backed recommendation for where engineering investment should move.- Packaging for Claude Code, Gemini CLI, and Codex CLI, plus Agent Plugins 1.0 and Cursor manifests and an
.agents/skillssymlink for Devin.
Deferred: cross-run memory, so a re-run reports only what changed since the last review. Tried and cut — agents reliably
produce the report and then skip the bookkeeping write, in ~, .git/, and $TMPDIR alike. The first two are also
blocked outright by Codex's sandbox. Revisit when there is a way to make the write intrinsic to producing the report
rather than a step after it.