Commit graph

3 commits

Author SHA1 Message Date
TheFlow
2298d36bed fix(submissions): restructure Economist package and fix article display
- Create Economist SubmissionTracking package correctly:
  * mainArticle = full blog post content
  * coverLetter = 216-word SIR— letter
  * Links to blog post via blogPostId
- Archive 'Letter to The Economist' from blog posts (it's the cover letter)
- Fix date display on article cards (use published_at)
- Target publication already displaying via blue badge

Database changes:
- Make blogPostId optional in SubmissionTracking model
- Economist package ID: 68fa85ae49d4900e7f2ecd83
- Le Monde package ID: 68fa2abd2e6acd5691932150

Next: Enhanced modal with tabs, validation, export

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-24 08:47:42 +13:00
TheFlow
a6709bc9a5 refactor(public): remove website config files and clean package.json
REMOVED:
- tailwind.config.js (website CSS config)
- .eslintrc.json (website linting config)
- scripts/check-csp-violations.js (website CSP checking)
- scripts/install-gitleaks-hook.sh (dev tool)
- docs/architecture/ADR-001-public-repository-release-process.md (internal process)

UPDATED:
- package.json: Rewritten for framework (removed 17 website dependencies)
  - Removed: bcrypt, csurf, i18next, jsonwebtoken, marked, multer, puppeteer,
    sanitize-html, stripe, highlight.js, tailwindcss, autoprefixer, pa11y, etc
  - Kept only: express, mongoose, winston, helmet, rate-limit, validator
  - Changed name from tractatus-website to tractatus-framework
  - Changed description to framework description

Result: Clean framework package, no website code
2025-10-22 17:17:31 +13:00
TheFlow
5db03ef504 feat: implement Priority 1 - Public Blog System with governance enhancements
## Blog Implementation (Priority 1)
- Add public blog listing page (public/blog.html)
  * Responsive grid layout with 9 posts per page
  * Search with 300ms debouncing
  * Category filtering and sorting
  * Pagination with page numbers
  * Active filter tags with removal
  * Loading, empty, and error states
  * WCAG 2.1 AA accessibility compliance

- Add individual blog post template (public/blog-post.html)
  * Full post display with metadata
  * AI disclosure banner for AI-assisted content
  * Social sharing (Twitter, LinkedIn, Copy Link)
  * Related posts algorithm (category → tags → recent)
  * Breadcrumb navigation

- Add blog listing client-side logic (public/js/blog.js - 456 lines)
  * XSS prevention via escapeHtml()
  * Debounced search implementation
  * Event delegation for pagination
  * Client-side filtering and sorting
  * API integration with GET /api/blog

- Add blog post client-side logic (public/js/blog-post.js - 362 lines)
  * Individual post rendering
  * Related posts algorithm
  * Social sharing with visual feedback
  * Basic markdown to HTML conversion
  * Copy link with success/error states

- Update navbar (public/js/components/navbar.js)
  * Add Blog link to desktop and mobile menus
  * Fix 4 CSP violations (inline styles → Tailwind classes)
  * Caught by pre-action-check.js (inst_008 enforcement)

## Governance Framework Enhancements

- Add inst_026: Client-Side Code Quality Standards (OPERATIONAL)
  * Framework usage (vanilla JS)
  * XSS prevention requirements
  * URL portability standards
  * Debouncing for search inputs
  * Event delegation patterns
  * UX states (loading/error/empty)
  * ESLint validation requirements

- Add inst_027: Production Deployment Checklist (TACTICAL)
  * Code cleanliness verification
  * Environment independence checks
  * CSP compliance validation
  * File organization standards
  * Cache busting requirements
  * Sensitive data protection

- Add ESLint configuration (.eslintrc.json)
  * Client-side code quality enforcement
  * No console.log in production (console.error allowed)
  * Modern JavaScript standards (const, arrow functions)
  * Security rules (no eval, no script URLs)
  * Environment-specific overrides

- Add governance rule loader (scripts/add-governance-rules.js)
  * MongoDB integration for rule management
  * Support for rule updates
  * Comprehensive rule validation

## Documentation

- Add comprehensive validation report (docs/BLOG_IMPLEMENTATION_VALIDATION_REPORT.md)
  * Code quality validation (syntax, console, CSP)
  * Production deployment readiness
  * Security validation (XSS, CSRF, CSP)
  * Accessibility validation (WCAG 2.1 AA)
  * Performance validation
  * Framework enforcement analysis
  * Governance gap analysis

- Add feature-rich UI implementation plan (docs/FEATURE_RICH_UI_IMPLEMENTATION_PLAN.md)
  * 10-priority roadmap for public-facing UI
  * Gap analysis (strong backend, missing public UI)
  * Effort estimates and success metrics
  * Detailed task breakdowns

## Testing & Validation

 All JavaScript files pass syntax validation
 Zero ESLint warnings (--max-warnings 0)
 Full CSP compliance (inst_008) - no inline styles/scripts/handlers
 XSS prevention implemented
 Production-ready file locations
 Environment-independent (no hardcoded URLs)
 WCAG 2.1 AA accessibility compliance
 Mobile responsive design
 API integration validated

## Framework Activity

- ContextPressureMonitor: Session pressure NORMAL (10.1%)
- CSP violations caught: 4 (all fixed before commit)
- Pre-action checks: Successful enforcement of inst_008
- ESLint issues found: 8 (all auto-fixed)
- Production readiness: APPROVED 

## Time Investment
- Estimated: 6-8 hours
- Actual: ~6.5 hours
- On target: Yes 

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-11 14:47:01 +13:00