Skip to content

v1.0.18 — expectedIntent override + diminishing returns for repeated signals (#152)

Choose a tag to compare

@github-actions github-actions released this 25 Jul 09:12
· 2 commits to main since this release

Release 1.0.18

Two content-scoring improvements. All 17 @power-seo/* packages are published together at 1.0.18.

Editor-selected target intent (expectedIntent)

analyzeContent() now accepts an optional expectedIntent input:

analyzeContent({
  content,
  focusKeyphrase,
  expectedIntent: 'commercial', // 'informational' | 'navigational' | 'transactional' | 'commercial' | 'commercial-investigation'
});

When set, every intent-aware check scores the content against the selected
intent instead of auto-detecting it from the focus keyphrase. This lets an
editor who knows a page's job — a pricing page whose keyphrase happens to read
"informational", for example — override the classification so the Intent and
E-E-A-T tabs score against reality. 'commercial' is accepted as an alias for
'commercial-investigation'.

detectIntent, ExpectedIntent, IntentType, and IntentResult are now
exported from @power-seo/content-analysis, so UIs can show auto-detected vs.
target intent side by side.

Diminishing returns for repeated signal phrases (fixes #152)

Previously, E-E-A-T and AEO checks counted every regex match at full value, so
repeating an exact trigger phrase ("I recommend" ×10) scored the same as ten
genuinely varied signals — the checks were trivially gameable by phrase
stuffing.

@power-seo/core gains countEffectiveMatches(): each distinct matched
phrase earns full credit once, and identical repeats earn log₂-scaled credit
(1 + log2(n)), so ten copies of one phrase are worth ~4.3 instead of 10.
Identical phrases matched by more than one pattern are merged, which also
removes same-phrase double-dipping within a check.

Applied to the three checks named in the issue:

  • eeat-experience-depth — density tier now uses effective (repetition-discounted) markers; descriptions note "N raw, M after repetition discounting".
  • eeat-methodology-transparency — tier thresholds use effective matches.
  • aeo-fact-density — the same fact repeated no longer counts as multiple facts.

Ten varied experience markers now strictly outscore one marker repeated ten
times, and pasting a trigger-phrase list can no longer buy the top tier. The
deterministic, explainable design is unchanged — only repetition is discounted.

Quality

  • 6 new regression tests; 432 tests passing in @power-seo/content-analysis.
  • All 17 packages build clean and are version-aligned at 1.0.18.