Version Watch needs deterministic rules for:
- category tagging
- role relevance
- affected stack tagging
- homepage ranking
- release intelligence
Signal v2 uses rule-based classification, not LLM inference. Severity answers "how urgent is this?" while release_class answers "what kind of change is this?"
Every candidate can have one or more categories:
breakingdeprecationapimodelsdkpricingpolicysecurityinfradocs
Use one or more role tags:
frontendbackendmobileinfraaidatasecurityproduct
Use one or more stack tags:
hostingdeploymentspaymentsauthllmsagentssearchemailmobile-platformdatabaseobservabilitydeveloper-workflow
- mention of removed support, discontinued support, migration deadline:
breakingordeprecation - mention of API endpoint or parameter changes:
api - mention of model names, pricing, context windows, tool behavior:
model - mention of SDK release or client library support:
sdk - mention of plan pricing, seats, usage pricing:
pricing - mention of app store, policy, review, compliance, org policy:
policy - mention of CVE, patch, vulnerability, token leak, auth exposure:
security - mention of deploy, runtime, cache, worker, compute, infra services:
infra - docs-only structural changes with no shipping impact:
docs
- UI libraries, frameworks, browsers, web tooling:
frontend - APIs, infra, databases, queues, deployments:
backendorinfra - iOS, Android, Xcode, SDK policy:
mobile - models, prompts, agents, MCP, inference APIs:
ai - warehouse, analytics, database changes:
data - auth, CVEs, policies, secrets:
security - roadmap/product process tooling:
product
Map vendor and category combinations into the stack taxonomy. Example:
- Stripe + pricing/api ->
payments - Clerk + auth ->
auth - OpenAI/Anthropic/Gemini/Cursor/Codex ->
llmsoragents - Cloudflare/Vercel/Docker ->
hostingordeployments - Firebase/Supabase ->
database - Resend ->
email - GitHub/Linear/Cursor ->
developer-workflow
Use a 0-100 score. Signal v2 starts from release_class, then applies small adjustments for source quality, freshness, confidence, and evidence. This keeps routine patch releases from outranking major model launches or breaking platform changes just because they came from a high-quality official source.
breaking: behavior removal, deprecation, migration, default behavior, or compatibility change.security: vulnerability, credential, secret, auth, or security patch.model_launch: new model, frontier model, model availability, or model behavior launch.pricing: pricing, cost, credit, invoice, usage pricing, or plan-limit change.policy: policy, governance, compliance, review, or terms change.api_change: endpoint, parameter, schema, request, response, webhook, or contract change.sdk_release: SDK, client library, package, or library release.cli_patch: semantic-version CLI patch release.beta_release: beta, alpha, release candidate, preview, canary, or nightly release.docs_update: docs-only update with no clear shipping impact.routine_release: official update with no stronger operational evidence.
security: 86breaking: 82pricing: 72policy: 68model_launch: 66api_change: 52sdk_release: 42cli_patch: 30beta_release: 28routine_release: 24docs_update: 18
- source type: official changelog and GitHub releases get a small evidence boost
- freshness: recent updates receive a small boost
- GitHub evidence: official GitHub link adds a small boost
- impact confidence:
high,medium, orlowadjusts the final score
Low-operational-impact classes are capped:
cli_patch: max 42beta_release: max 40routine_release: max 36docs_update: max 28
This means a Codex CLI patch can remain visible and useful, but it should not carry the same urgency as a GPT frontier-model launch, breaking API change, deprecation, security patch, or pricing change.
Same vendor, same source, same release family updates inside a 24-hour window receive repeat decay when the class is cli_patch, beta_release, routine_release, or sdk_release.
The first release keeps its normal score. Later related releases receive a signal_reasons entry such as repeat_decay:-10. Homepage presentation may also cluster the related updates into one digest card.
critical: 80-100high: 50-79medium: 30-49low: 0-29
Each public update exposes machine-readable signal_reasons, for example:
release_class:model_launchimpact_confidence:highsource:docs_pagerepeat_decay:-10
Agents should use release_class, impact_confidence, signal_reasons, and recommended_action together instead of relying only on signal_score.
Broad categories remain stable for compatibility. Signal v2 adds deterministic topic tags where evidence is clear:
frontier-modelcli-releasepatch-releasebeta-releasedeprecationsdk-updateapi-contractpricing-change
Default homepage sort:
- importance band
- raw importance score
- published date descending
Tie-breaker:
- prefer events with official source and GitHub evidence over source-only docs tweaks
- cluster repeated same-vendor release-family noise before rendering the latest feed
Vendor pages ignore importance by default and sort by:
- published date descending
- discovered date descending
All items still require review, but thresholds guide attention:
criticalandhigh: review firstmedium: review normallylow: likely suppress unless still useful for vendor completeness
Public update objects expose these signal v2 fields:
release_classimpact_confidencesignal_reasonsscore_version
Raw updates remain available through /api/v1/updates. Clustered digest output is additive through /api/v1/clusters and homepage latest presentation.