feat: add baloney ECC bundle - #8
Open
ecc-tools[bot] wants to merge 127 commits into
Open
Conversation
- extension/content.js: count heavy_edit as flagged in stats (was only ai_generated) - extension/background.js: add mock fallback + timeout for context menu text check - extension/popup.html: replace innerHTML with safe DOM methods in Top Pages - frontend/src/lib/api.ts: restore getInformationDietScore and detectPreview (dropped during partner's redesign merge, broke /my-diet and /platform) - frontend/.env.example: Supabase credentials for local dev setup - CLAUDE.md: updated with 16 API routes, 7 tables, 7 pages, extension docs, deployment notes (Vercel webhook broken, manual deploy needed) - docs/MANUAL_TEST_RESULTS.md: full manual test results (40/40 pass) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Update to reflect current state: 17 API routes, 9 pages, 7 tables, universal extension scanning, content filtering, information diet scoring, and AI tracker. Professional formatting for hackathon demo. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Images were in frontend/assets/ but Next.js serves static files from frontend/public/. The landing page and navbar reference /baloney.png and /mona_lisa_pig.png which returned 404. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Extension UX redesign (Grammarly-inspired, intentional over invasive): - Text: highlight → "Scan with Baloney" popup → insight with WHY explanations - Images: auto-scan with colored outline borders on hover, tooltip at edge - Videos: poster/frame capture through image detection pipeline - Content filtering: label/blur/hide modes for AI and heavy-edit verdicts - Pig face icons (SVG-generated) at 16/48/128px, version bumped to 0.3.0 Real ML detection via HuggingFace Inference API: - Text ensemble: RoBERTa (50%) + MiniLM embeddings (20%) + statistical (30%) - Image ensemble: ViT classifier (55%) + FFT frequency (25%) + EXIF metadata (20%) - Graceful fallback to mock detectors without HUGGINGFACE_API_KEY Documentation: updated README (Grammarly comparison, full extension behavior), CLAUDE.md, API.md, ARCHITECTURE.md, PRESENTATION.md, AI_CITATION.md Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Replace RoBERTa-based-openai-detector (GPT-2 only, ~57% TPR on modern LLMs) with desklib/ai-text-detector-v1.01 (DeBERTa-v3-large, #1 on RAID benchmark — 6M+ documents, 11 LLMs, adversarial robustness). Backend (backend/): - FastAPI service with self-hosted DeBERTa text detection - Statistical feature extraction (burstiness, TTR, transitions) - Image detection: CLIP via HF API + FFT frequency + EXIF analysis - Dockerfile with CPU-only PyTorch (~2GB RAM on Railway Hobby $5/mo) - Pre-downloads model weights at build time (no cold-start penalty) Frontend integration: - real-detectors.ts tries Railway backend first, falls back to HuggingFace Inference API, then mock detectors - New RAILWAY_BACKEND_URL env var controls routing - Zero changes to API routes or type contracts https://claude.ai/code/session_018hu7CpT2um98XnRhvLYZx5
Redesign Chrome extension to match Baloney warm brand (cream/pink/brown). Replace hover-border indicators with discrete detection dots that expand on hover and open a Chrome sidepanel with full analysis detail. Add master on/off toggle, per-type auto-scan toggles, allowed-sites gating, and Grammarly-style text underlines after selection scans. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add extension storage schema, sidepanel files, dot UI details, warm theme description, and updated demo script tips. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…etection Added 36-test suite (vitest) evaluating AI detection against 31 curated real-world text samples and 6 synthetic image test cases. Testing revealed Method D's standalone recall was only 6.7% — statistical features missed nearly all AI text. Root causes: sentence/word length (strongest discriminators) were unused, readability threshold was inverted for long AI text, and TTR/repetition (near-zero discriminative power) were over-weighted at 35% combined. Fix adds sentence length signal (delta +9.1 AI vs Human) and word length signal (delta +1.6), fixes readability to continuous scale, rebalances weights by empirical discriminative power. Result: F1 84.6%, precision 100%, recall 73.3%, zero false positives on human text, Cohen's d 2.60. Image detection Methods F+G validated at 83.3% accuracy with strong frequency analysis separation (AI 0.75 vs Human 0.28 avg). https://claude.ai/code/session_019TYd2ZEWLGMjANwszoetPh
Add tabbed layout to analyze page with HandDrawnUnderline tab indicators. Create ImageDetectorPanel with drag-and-drop/paste/click upload that calls detectImage() and shows animated results. Add AnimatedPercentage component with requestAnimationFrame ease-out counting. Restyle TrustScoreGauge, SentenceHeatmap, and ScoreBreakdown from navy to warm Baloney palette. Video tab is a styled placeholder for now. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…polish - Personal dashboard simplified to 3 stats + AI rate by site chart + recent scans table - Community dashboard split to /dashboard/community with by-website and by-medium bar charts - Navbar restructured: Product → Analyze → Dashboards dropdown (Personal/Community) - Hero "Cut The Baloney" with staggered fade-in animations (0/150/300ms delays) - AiRateBySiteChart: multi-line Recharts showing AI rate per platform over time - Warm theme applied across all dashboard components and extension - Video detection tab + API endpoint added to /analyze - Extension icons, popup, and content script updates Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Dashboard now shows real scans from all extension users instead of hardcoded demo data. Both dashboards poll every 15s for live updates during hackathon demo. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…nd video Text Detection (4-method ensemble, up from 3): - Add Method C: Hello-SimpleAI/chatgpt-detector-roberta covering ChatGPT/GPT-4 era outputs (GPT-2-only blind spot fixed — cross-model generalization) - Dynamic weight redistribution when models fail (30/25/15/30 → graceful fallback) - Method B enhanced: sample 15 sentences uniformly across doc (was 8 from start), add rigidity signal (std-dev of distances), long-range semantic coherence - Method D enhanced: 12 statistical features (was 7) — adds transition word frequency (AI uses "moreover" 10x more), hedging phrase detection, comma density, expressive punctuation, paragraph repetition, bigram entropy - Short text threshold lowered from 50→20 chars with confidence scaling - Per-sentence scoring uses 4 features (was 1) Image Detection (dual classifier, 5-signal FFT): - Add Method E2: Organika/sdxl-detector for SDXL/Midjourney/DALL-E 3 era images - Confidence-aware dynamic weighting: more confident classifier gets more weight - Agreement bonus: both classifiers agreeing strongly boosts composite score - Method F enhanced: multi-scale windowing (8/16/32px), DCT coefficient analysis, edge density analysis, spectral slope estimation (was single-scale variance) - Method G enhanced: TIFF tag validation, AI tool signature detection in PNG metadata (Stable Diffusion, ComfyUI, NovelAI), C2PA/Content Credentials check, GPS data as authenticity signal, JFIF-only JPEG detection Video Detection (real multi-frame analysis): - realVideoDetection() analyzes up to 8 frames with temporal consistency scoring - Frame score std-dev detects fully AI vs mixed/edited content - Video API route upgraded from mock-only to real detection with fallback Extension (v2.0): - Default allowed sites expanded: +reddit, facebook, instagram, medium, tiktok, threads, bluesky, mastodon, hacker news (was 4 sites, now 13) - Multi-frame video capture: extracts frames at uniform intervals across duration - Platform detection expanded: +substack, threads, bluesky, mastodon, hackernews - Auto-scan text selectors: +reddit, medium, facebook, linkedin, substack, news - Retry logic with exponential backoff on API failures (2 retries, 1s/2s) - Concurrent scan limit increased from 2→3 - Image content hash uses 10K chars (was 1K) for better deduplication https://claude.ai/code/session_011bZdGbt8AvKHMS9CeNK2dK
- Add ConfidenceLevel type and SampleMetadata interface to lib/types.ts - Extend SlopIndexEntry with sample_size, confidence_level, and period fields - Extend PlatformBreakdown with optional sample_size and confidence_level fields - Add sample_metadata to CommunityTrends interface - slop-index route: compute and attach sample metadata per platform entry - community analytics route: annotate by_platform entries with confidence level - community trends route: compute aggregate sample_metadata across trend window - SlopIndexCard: show "Based on N scans [period]" label per platform card, muted amber for low confidence, faded for insufficient data - CommunityTrends: show scan count and period below chart; amber tint for low/insufficient - PlatformBreakdown + PlatformGroupedBar: fade bars with opacity for low/insufficient data platforms; show explanatory footnote when any platform is insufficient Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…ing) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Add video-aggregation.test.ts with 6 test suites (26 assertions) covering frame-level flagging thresholds, verdict mapping boundaries, edge cases, and a known-verdict baseline report. All tests are self-contained with no external API calls, targeting the deterministic aggregation layer extracted from the video route. Document video accuracy status in detection-config.ts evaluation section: aggregation logic tested and passing, frame-level accuracy unmeasured pending labeled video dataset + SightEngine integration test infrastructure. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Update CLAUDE.md and COMPANY.md to reference the new private baloney-platform documentation repository (17 investor-ready documents). Updated documentation index and commit counts. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…baloney-instincts.yaml)
…d-visualization.md)
Author
|
Author
Analysis CompleteGenerated ECC bundle from 131 commits | Confidence: 95% View Pull Request #8Repository Profile
Detected Workflows (7)
Generated Instincts (16)
After merging, import with: Files
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Auto-generated ECC bundle from repository analysis.
What This Does
Merging this PR adds repo-local ECC artifacts for both Claude Code and Codex. The generated bundle captures repository patterns, Codex baseline config, and reusable workflow scaffolds derived from git history analysis.
Analysis Scope
Files
.claude/ecc-tools.json.claude/skills/baloney/SKILL.md.agents/skills/baloney/SKILL.md.agents/skills/baloney/agents/openai.yaml.claude/identity.json.codex/config.toml.codex/AGENTS.md.codex/agents/explorer.toml.codex/agents/reviewer.toml.codex/agents/docs-researcher.toml.claude/homunculus/instincts/inherited/baloney-instincts.yaml.claude/commands/feature-development.md.claude/commands/refactoring.md.claude/commands/add-or-update-dashboard-visualization.mdOptional: Continuous Learning (17 instincts)
This PR also includes instincts for the continuous-learning-v2 skill. These are optional and only useful if you use that skill.
Import after merging:
Review Checklist
ECC Tools | Everything Claude Code