Skip to content

Commit 90088ba

Browse files
committed
docs: add STATUS.md with build summary and remaining work
Covers controversy risk scanner, thread detection fix, dependency cleanup, and prioritized list of what remains for CWS submission.
1 parent b53e2c9 commit 90088ba

1 file changed

Lines changed: 109 additions & 0 deletions

File tree

STATUS.md

Lines changed: 109 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,109 @@
1+
# X Algorithm Score — Project Status
2+
3+
Last updated: February 2026
4+
5+
## What's Built
6+
7+
### Core Extension (MVP)
8+
- **Real-time tweet scoring** on x.com — content script detects the composer via MutationObserver and displays a floating score badge (0-100, S-F grade)
9+
- **5-component scoring engine** — Content (0-25), Media (0-20), Timing (0-15), Engagement (0-20), Risk penalty (0-30), normalized to 0-100
10+
- **3-tab popup** — Test (score drafts offline), Learn (8 algorithm insight cards), Settings (API key, preferences)
11+
- **Score overlay** — collapsible badge expands to show Suggestions, Breakdown, and Algorithm Factors tabs
12+
- **Claude AI deep analysis** — optional originality scoring, engagement prediction, rewrite suggestions via user's own API key
13+
- **Background service worker** — handles install/update, message routing, score history storage, badge updates
14+
15+
### Controversy Risk Scanner (New)
16+
`src/lib/scandal-detector.ts` — pattern-based detection for content likely to trigger catastrophic algorithmic penalties.
17+
18+
**6 detection categories:**
19+
| Category | Examples | Why It Matters |
20+
|----------|----------|----------------|
21+
| Offensive language | Insults, violent language, slurs | Reports = -369x multiplier |
22+
| Hot-button topics | Broad group generalizations, political polarization | Mass reports from targeted group |
23+
| Inflammatory tone | Personal attacks, excessive caps, confrontational language | Blocks/mutes = -74x each |
24+
| Rage bait | "cope harder", "stay mad", intentional provocation | Blocks far outweigh any reply boost |
25+
| Targeted attacks | Attacking named users, doxxing references, cancel calls | Mass reports + potential suspension |
26+
| Misinformation patterns | Conspiracy framing, false authority claims, JAQ-ing | Content moderation flags |
27+
28+
**4 severity levels:** low (2pt penalty), medium (5pt), high (10pt), critical (20pt)
29+
**4 risk levels:** safe / caution / risky / dangerous
30+
31+
**Integration:**
32+
- Penalty feeds into scoring engine's risk calculation (capped at 10pts of 30pt risk budget)
33+
- Top controversy warning surfaces in the suggestions list
34+
- Popup shows color-coded risk banner with icon, level label, and warning details
35+
- Overlay shows compact controversy alert strip in expanded view
36+
37+
### Thread Length Detection (Bug Fix)
38+
Content script now counts `tweetTextarea_N` elements to detect thread length instead of hardcoding `threadLength: 1`. X uses `tweetTextarea_0`, `tweetTextarea_1`, etc. for each tweet in a thread.
39+
40+
### Other Fixes & Cleanup
41+
- Removed unused dependencies (`lucide-react`, `zustand`) — declared but never imported
42+
- Removed all TODO comments from source (0 remaining)
43+
- Removed stale follower-timezone dead code block from timing calculator
44+
- Fixed broken placeholder screenshot references in README
45+
- Comprehensive README rewrite with install guide, scoring tables, project structure
46+
47+
### Build & Packaging
48+
- `npm run build` — tsc + vite build (40 modules, ~460ms)
49+
- `npm run build:clean` — removes dist/ first
50+
- `npm run package` — clean build + zip for Chrome Web Store (129KB)
51+
- TypeScript strict mode, 0 errors
52+
- Manifest V3 validated, all file references verified
53+
54+
## What Remains
55+
56+
### High Priority (Before CWS Submission)
57+
- [ ] Load extension in Chrome and verify it works on x.com
58+
- [ ] Take 5 screenshots for Chrome Web Store listing (see `store-assets/STORE_LISTING.md`)
59+
- [ ] Fill in store listing placeholders (support email, website URL, GitHub repo)
60+
- [ ] Host privacy policy at a public URL
61+
- [ ] Submit to Chrome Web Store
62+
63+
### Medium Priority
64+
- [ ] Upgrade Vite to 6.x when @crxjs/vite-plugin supports it (fixes esbuild dev server vulnerability — moderate severity, dev-only)
65+
- [ ] Persist settings changes to chrome.storage (popup Settings tab currently local state only)
66+
- [ ] Add score history tracking (background service worker has the handler, needs UI)
67+
68+
### Low Priority (Post-MVP)
69+
- [ ] Timeline scoring — show scores on existing tweets in the feed
70+
- [ ] User context integration — follower count, engagement rate, Premium status
71+
- [ ] Thread composer — per-tweet scoring within threads
72+
- [ ] Optimal posting time — personalized suggestions based on follower timezones
73+
- [ ] Firefox and Safari support
74+
- [ ] A/B testing suggestions
75+
76+
## File Map
77+
78+
```
79+
src/
80+
├── background/index.ts # Service worker (install, messaging, history)
81+
├── content/
82+
│ ├── index.tsx # Composer detection, overlay injection
83+
│ ├── styles.css # Overlay animations
84+
│ └── components/
85+
│ └── ScoreOverlay.tsx # Collapsible score badge + expanded panel
86+
├── lib/
87+
│ ├── scoring-engine.ts # 5-component scoring + suggestions + factors
88+
│ ├── scandal-detector.ts # Controversy risk scanner (6 categories)
89+
│ └── ai-analysis.ts # Claude API integration
90+
├── popup/
91+
│ ├── index.html # Popup entry
92+
│ ├── main.tsx # React mount
93+
│ ├── Popup.tsx # 3-tab UI (Test, Learn, Settings)
94+
│ └── styles.css # Tailwind + custom styles
95+
└── types/index.ts # All interfaces + default weights
96+
```
97+
98+
## Commit History
99+
100+
```
101+
b53e2c9 feat: add Controversy Risk Scanner for tweet analysis
102+
c8b1aa8 docs: rewrite README with full install/dev/usage guide
103+
de1f1ef docs: update README with packaging commands and fix broken screenshot refs
104+
79e5495 chore: add CWS packaging scripts and ignore zip artifacts
105+
494550f chore: extension session updates
106+
207284c docs: add INSTALL.md and sync version to 0.1.0
107+
6200742 docs: comprehensive README with installation guide and algorithm insights
108+
063a2c7 feat: initial MVP release of X Algorithm Score extension
109+
```

0 commit comments

Comments
 (0)