BOHICA-LABS / BOHICA-LABS/writescore

Energy dimension should account for domain terms in abstract language calculation

Open
#47 1 comment 0 reactions 0 assignees View on GitHub
stale
Dominant language
Python
Stars
2
Forks
0
PR merge metrics
No merged PRs in 30d

Description

## Problem

The Energy dimension's "abstract language" metric flags domain-specific technical terms as abstract, even when they have concrete meanings within their field. This unfairly penalizes technical writing.

**Example:** In a cybersecurity article, terms like `reconnaissance`, `infrastructure`, `posture`, `correlation`, `intelligence` are flagged as abstract, contributing to a 40%+ abstract language score (target is <10%).

## Current Behavior

- **Voice dimension**: Uses `--domain-terms` to recognize technical vocabulary and adjust scoring
- **Energy dimension**: Ignores `--domain-terms`, penalizes technical writing regardless

## Expected Behavior

Energy's abstract language calculation should exclude terms specified in `--domain-terms` from its abstract word count, similar to how Voice already handles domain terminology.

## Impact

Technical articles hit a quality score ceiling (~70-71%) because unavoidable domain terminology gets flagged as "abstract language." This makes the tool less useful for technical writing where the audience understands the terminology.

## Proposed Solution

1. Pass `domain_terms` to the Energy analyzer (like Voice already receives)
2. Filter domain terms from the abstract language word list before calculating the percentage
3. Alternatively, weight domain terms lower in the abstract calculation

## Reproduction

```bash
# Article with security terminology
uv run writescore analyze article.md --mode full --profile full --show-scores --domain-terms "OSINT,reconnaissance,infrastructure,posture"

# Abstract language still shows 40%+ despite domain terms being specified
```

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.