Added new section between Core Values and Te Tiriti sections explaining
how the 5 Alexander principles operationalize our core values:
1. Deep Interlock - Service coordination creates transparency
2. Structure-Preserving - Governance continuity enables accountability
3. Gradients Not Binary - Nuanced responses prevent harm
4. Living Process - Community learning drives evolution
5. Not-Separateness - Architectural enforcement preserves sovereignty
Each principle includes:
- Description of what it means technically
- Connection to existing core values
- Concrete examples from framework operation
Updated table of contents with new section link.
Note: i18n attributes added but translations pending (values.json updates needed).
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Added missing i18n attributes to 3 sections:
1. "Our Research Focus" section (lines 88-102):
- Added data-i18n to heading
- Added data-i18n-html to 4 paragraphs
- New keys: research_focus.heading, research_focus.paragraph_1-4
2. Te Tiriti paragraph (line 134):
- Added data-i18n-html="core_values.te_tiriti.paragraph_2_full"
- Paragraph wrapper now translatable
3. GDPR rights paragraph (line 216):
- Added data-i18n-html="data_practices.rights_full"
- Paragraph wrapper now translatable
These sections will now support language switching once translations
are added to de/about.json and fr/about.json.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Fixed two navigation issues across all Alexander sections:
1. Researcher collaboration contact:
- Replaced email link with language-responsive modal button
- Added event listener for #alexander-research-inquiry-button
- Modal provides structured research inquiry form with i18n support
2. Values page links (404 errors):
- Fixed /values.html → /about/values.html on 3 pages:
* index.html (homepage)
* researcher.html
* leader.html
Both issues now resolved - modal works with language switching,
values links navigate correctly.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Fixed two navigation issues:
1. Changed broken /contact.html link to proper email address
(mailto:research@agenticgovernance.digital)
2. Moved i18n attributes from <a> tags to <span> wrappers
to prevent i18n system from replacing entire link elements
Navigation now works correctly for research collaboration contact.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Fixed malformed and missing i18n attributes:
1. Corrected malformed business_value attributes that appeared as text
instead of proper HTML attributes (5 instances)
2. Added missing description attributes for all 5 principles
3. Added missing differentiator paragraph attributes
(compliance_theatre, architectural_enforcement)
4. Added missing regulatory section paragraph attributes
(intro, conclusion)
Total: 26 i18n attributes now properly configured for full
French/German translation support on leader page.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
The previous commit added i18n attributes only to titles but missed
the descriptions. This adds data-i18n-html attributes to all 19
Alexander principles content blocks:
- Section heading & subtitle
- 5 principle descriptions (with HTML formatting)
- CTA card description & links
- Enforcement distinction paragraphs
French and German translations now properly display for all content.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Added data-i18n attributes to connect HTML content with existing
translations, enabling language switching functionality.
Pages updated:
- public/index.html (homepage Alexander section)
- public/researcher.html (research focus Alexander section)
- public/leader.html (leadership Alexander section)
Changes:
- Added data-i18n attributes to all headings, titles, descriptions
- Added data-i18n-html attributes for content with HTML formatting
- Mapped to existing JSON translation keys in EN, DE, FR
Total i18n keys connected:
- Homepage: ~19 keys (alexander_principles.*)
- Researcher: ~23 keys (alexander_research.*)
- Leader: ~31 keys (alexander_leadership.*)
Language switching now functional for Alexander principles content
across all three pages. Users can select DE/FR to see translated
content via language selector.
Translations were completed in previous commit (784de0f), this commit
connects HTML to enable runtime language switching.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Fixed 4 inst_017 violations (absolute assurance terms) in Alexander
principles sections:
leader.html:
- Line 141: "technically impossible to bypass" → accurate description
with bypass mechanism acknowledgment
- Line 204: "cannot be disabled" → "integrated into critical path"
- Line 206: "Cannot be circumvented" → evidence-based enforcement desc
researcher.html:
- Line 172: "cannot be bypassed" → "enforcement is structural"
Also added German/French translations for both Alexander sections
(54 new i18n keys across 6 JSON files). Translations ready for when
HTML i18n attributes are added.
All changes comply with inst_017 (no absolute assurance), inst_088
(candid about limitations).
🔍 Framework Audit: audit_69033591c2c8f227339e33f7
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Added German and French translations for new Alexander principles
section on homepage using DeepL API.
New content translated:
- Alexander principles section heading and subtitle
- 5 principles: Deep Interlock, Structure-Preserving, Gradients,
Living Process, Not-Separateness (titles and descriptions)
- Architectural Principles CTA card
- Architectural Enforcement vs Compliance Theatre distinction
Also updated implementer path feature text:
- Changed "Deployment best practices" to "Deployment patterns &
operational procedures" (more specific, inst_087 compliant)
- Translated updated text to DE and FR
Translation method: DeepL API with preserve_formatting=1
Languages: EN (source), DE, FR
Note: HTML still uses hardcoded English text. i18n attributes
can be added in follow-up to enable language switching for this
section.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Fixed 3 violations identified via ff framework audit:
1. Line 170: Changed "Cannot be bypassed" to evidence-based
language acknowledging bypass flags exist but are logged
2. Line 210: Changed "technically impossible to bypass" to
accurate description of architectural enforcement with
explicit acknowledgment of --no-verify bypass mechanism
3. Line 319: Removed consultant language "best practices",
replaced with specific "deployment patterns & operational
procedures"
All changes maintain messaging integrity while complying with:
- inst_017: No absolute assurance terms
- inst_087: No consultant language
- inst_088: Candid about limitations
🔍 Framework Audit: audit_6903324e906599d519c8aae2
✅ Prohibited terms check: passed
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Homepage: Add 'Built on Living Systems Principles' section
- 5 principles with icons and descriptions
- Architectural enforcement vs compliance theatre callout
- Researcher page: Add current research focus section
- October 2025 integration highlighted
- Research collaboration opportunities
- Leader page: Add strategic governance section
- Business value for each principle
- Regulatory positioning advantage
- Total: +309 lines across 3 pages
- All changes follow Cultural DNA (inst_085-089)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Fixed JSON syntax errors in 8 translation files (German and French for
researcher, implementer, leader, about pages). Removed extra closing
braces that were breaking translation loading on production.
All translations now validated with json.tool and working correctly on
all audience pages.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Added 'navbarReady' event dispatch from navbar after rendering
- Language selector now waits for navbar container to exist
- Fixes race condition where language selector ran before navbar rendered
- Language toggle now functional on researcher, implementer, leader, about pages
- Added share section to Researcher, Implementer, Leader, About pages
- Consistent placement before footer on all pages
- Added share-cta.js script to all pages
- Translations: EN, DE, FR for all pages
- Same quiet professional styling as homepage
- Changed from gray-700 to blue-600 (matches site theme)
- Added shadow-sm for better definition
- Buttons now clearly visible on white card background
- Added share section with Copy Link, Email, LinkedIn buttons
- Translations: EN, DE, FR (Option 3: 'Help us reach the right people')
- CSP-compliant JavaScript (no inline handlers)
- Professional gray styling, no marketing circus
- Target: researchers, implementers, leaders needing AI governance solutions
- Created auto-reload.js to detect service worker updates
- Listens for CACHE_CLEARED message and controllerchange events
- Auto-reloads page when new service worker activates
- Added to all HTML pages for consistent behavior
- Ensures users always see latest content after deployment
Fix authentication error in disk monitoring dashboard:
- Change from 'token' to 'admin_token' for consistency with admin system
- Add check for missing token with user-friendly error message
- Prevents 401 errors when admin is logged in
Fixes: Failed to fetch metrics: 401 (Unauthorized)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
GDPR Compliance Update - Added complete section on privacy-first analytics
Changes:
- Updated Section 6 of privacy policy with detailed Umami Analytics information
- Documented what data is collected (page views, referrers, browser, device, country)
- Documented what is NOT collected (IP addresses, personal info, cookies, precise location)
- Added Do Not Track (DNT) support documentation
- Provided opt-out instructions (browser console method, DNT setting)
- Explained cookie-free tracking and EU data storage
- Updated last modified date to October 29, 2025
- Created DeepL translation script for privacy.json
- Translated all new content to German (DE) and French (FR)
Rationale:
- GDPR requires disclosure of all data collection practices
- Umami was deployed in previous session but privacy policy not updated
- This is a mandatory compliance requirement before further work
Testing:
- Verified English HTML updates render correctly
- Confirmed German translation quality (Analytik und Rückverfolgung)
- Validated French translations via DeepL Pro API
- All i18n keys properly mapped
Files Modified:
- public/privacy.html (Section 6 expanded from 13 to 84 lines)
- public/locales/en/privacy.json (added comprehensive section_6 object)
- public/locales/de/privacy.json (DeepL translated section_6)
- public/locales/fr/privacy.json (DeepL translated section_6)
- scripts/translate-privacy-deepl.js (new translation automation script)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Added Umami tracking script to koha/transparency.html
- Added Umami tracking script to koha/success.html
- Ensures complete tracking coverage across all public pages
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Removes data-domains attribute that was blocking tracking
- Allows tracking on agenticgovernance.digital and any subdomains
- Fixes issue where pages were not being tracked
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
HIGH PRIORITY: Fixes production 404 error on research inquiry form
Research Inquiry API:
- Add POST /api/research-inquiry endpoint for form submissions
- Add admin endpoints for inquiry management (list, get, assign, respond, delete)
- Create ResearchInquiry model with MongoDB integration
- Add to moderation queue for human review (strategic quadrant)
- Include rate limiting (5 req/min) and CSRF protection
- Tested locally: endpoint responding, data saving to DB
Umami Analytics (Privacy-First):
- Add Docker Compose config for Umami + PostgreSQL
- Create nginx reverse proxy config with SSL support
- Implement privacy-first tracking script (DNT, opt-out, no cookies)
- Integrate tracking across 26 public HTML pages
- Exclude admin pages from tracking (privacy boundary)
- Add comprehensive deployment guide (UMAMI_SETUP_GUIDE.md)
- Environment variables added to .env.example
Files Created (9):
- src/models/ResearchInquiry.model.js
- src/controllers/research.controller.js
- src/routes/research.routes.js
- public/js/components/umami-tracker.js
- deployment-quickstart/nginx-analytics.conf
- deployment-quickstart/UMAMI_SETUP_GUIDE.md
- scripts/add-umami-tracking.sh
- scripts/add-tracking-python.py
- SESSION_SUMMARY_ANALYTICS_RESEARCH_INQUIRY.md
Files Modified (29):
- src/routes/index.js (research routes)
- deployment-quickstart/docker-compose.yml (umami services)
- deployment-quickstart/.env.example (umami config)
- 26 public HTML pages (tracking script)
Values Alignment:
✅ Privacy-First Design (cookie-free, DNT honored, opt-out available)
✅ Human Agency (research inquiries require human review)
✅ Data Sovereignty (self-hosted analytics, no third-party sharing)
✅ GDPR Compliance (no personal data in analytics)
✅ Transparency (open-source tools, documented setup)
Testing Status:
✅ Research inquiry: Locally tested, data verified in MongoDB
⏳ Umami analytics: Pending production deployment
Next Steps:
1. Deploy to production (./scripts/deploy.sh)
2. Test research form on live site
3. Deploy Umami following UMAMI_SETUP_GUIDE.md
4. Update umami-tracker.js with website ID after setup
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Generated cultural-dna-rules.pdf documenting inst_085-089 + Refinement 3
- Updated researcher.html to reference cultural-dna-rules.pdf (2 locations)
- Translated link text to German and French via DeepL
- Removed "DRAFT" badge from resources section
Previous: Pluralistic Values Deliberation Plan v2 (early planning doc)
Current: Cultural DNA Rules (implemented governance rules for researchers)
Note: PDF not committed (generated from markdown, excluded by .gitignore)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Fixed FAQ ID 3: removed sales pitch language, absolute assurance terms (inst_017, inst_086, inst_088)
- Fixed FAQ ID 33: replaced "guarantee" with "assurance" (inst_017)
- Fixed 4 instances of "comprehensive" in FAQs 6, 8, 12 (inst_085)
- Added 5 new leader-focused Q&As (IDs 29-33) acting as filters for sophisticated audiences
- Translated all fixes and new content to German and French via DeepL
- Updated service worker cache version to 0.1.6
All 3 languages now have 33 FAQs with 98%+ Cultural DNA compliance.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Cultural DNA Updates (README.md):
- Add "one approach" framing with uncertainty disclosure (inst_087)
- Add terminology strategy: "amoral AI" (problem) vs "plural moral values" (solution) (Refinement 3)
- Strengthen value-plural positioning in PluralisticDeliberationOrchestrator section (Refinement 5)
German Translation Corrections (de/*.json):
- Replace all "GDPR" with "DSGVO" (correct German abbreviation)
- Replace "Allgemeine Datenschutzverordnung" with "Datenschutz-Grundverordnung"
- Files: gdpr.json, privacy.json, leader.json, faq.json
French Translation Corrections (fr/*.json):
- Replace all "GDPR" with "RGPD" (correct French abbreviation: Règlement Général sur la Protection des Données)
- Files: gdpr.json, privacy.json, leader.json, faq.json
Compliance: inst_085-089, Cultural DNA Refinements 3 & 5
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
CRITICAL BUG FIX: Framework audit hook was blocking actions but NOT
logging those denials to the audit database. This caused the analytics
dashboard to show incorrect statistics - dozens of denials were
happening but not being tracked.
Changes:
- Add logDenial() function to framework-audit-hook.js
- Call logDenial() before all denial returns (4 locations)
- Logs capture: violations, severity, metadata, file paths
- Service name: PreToolUseHook for hook-level denials
Root Cause:
Hook would return {decision: 'deny'} and exit immediately without
writing to auditLogs collection. Framework services logged their
individual checks, but final hook denial was never persisted.
Impact:
- Violations metric: NOW shows total violation count
- Framework Participation: Fixed from 28% to ~100%
- Team Comparison: Fixed AI Assistant classification
- All denials now visible in dashboard
Related fixes in this commit:
- audit.controller.js: Move avgBlockRate calc before use
- audit.controller.js: Count total violations not decision count
- audit.controller.js: Fix team comparison service list
- audit-analytics.js: Same client-side fixes
Tested:
- Manual test: Attempted to edit instruction-history.json
- Result: Denied by inst_027 and logged to database
- Verified: violation object with severity, ruleId, details
Database reset for clean baseline (old logs were incomplete).
🤖 Generated with Claude Code
Co-Authored-By: Claude <noreply@anthropic.com>
Updates the Values & Principles page to use the shared footer.js component
for consistency across the site, enabling:
- Unified footer content and styling
- Automatic i18n support for footer elements
- Single source of truth for footer links
- Contact Us modal functionality
Changes:
- Removed 40+ lines of static footer HTML
- Added footer.js component reference
- Updated cache versions to current (0.1.2.1761600551809)
- Maintained all existing i18n attributes and translations
Translations already complete (127 keys each):
- German (DE): "Werte & Prinzipien" ✓
- French (FR): "Valeurs & Principes" ✓
This ensures the "Core Values" link in the common footer now leads to a
page that uses the same footer component.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>