Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
238 changes: 131 additions & 107 deletions ABI-FFI-README.md → ABI-FFI-README.adoc

Large diffs are not rendered by default.

433 changes: 238 additions & 195 deletions ARCHITECTURE.md → ARCHITECTURE.adoc

Large diffs are not rendered by default.

316 changes: 316 additions & 0 deletions CHANGELOG.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,316 @@
== Changelog

All notable changes to the Evidence Graph project will be documented in
this file.

The format is based on https://keepachangelog.com/en/1.0.0/[Keep a
Changelog], and this project adheres to
https://semver.org/spec/v2.0.0.html[Semantic Versioning].

=== [Unreleased]

==== Planned (Phase 2)

* Zotero browser extension (one-click import)
* Multi-investigation dashboard with cross-referencing
* Real-time collaborative editing via Phoenix PubSub
* Advanced D3.js visualisations (timeline, heatmap, Sankey)
* Role-based access control
* IPFS provenance integration
* Hetzner Cloud deployment

=== [1.0.0] - 2026-02-21 - "`Phase 1 PoC`" (Evidence Graph v1)

==== Added

===== LiveView Frontend

* *5 LiveView pages*: Dashboard (investigation list), Investigation
detail, Graph visualisation, PROMPT scoring, Navigation paths
* *Core components*: layouts, navigation, responsive design
* *D3.js hooks*: Force-directed graph + radar chart visualisations

===== User Authentication

* *phx.gen.auth*: Registration, login, settings, magic link confirmation
* *bcrypt*: Password hashing via bcrypt_elixir
* *Swoosh*: Email delivery for magic links
* *Session-based auth*: CSRF protection on all state-changing operations

===== Zotero REST API

* `+POST /api/evidence/import+` - Import single evidence from Zotero
* `+POST /api/evidence/batch-import+` - Batch import multiple items
* `+GET /api/evidence/:id/export+` - Export evidence to Zotero format
* `+GET /api/investigations/:id/sync-status+` - Check Zotero sync status

===== Production Deployment

* *Containerfile*: Multi-stage OCI build (Elixir 1.18/OTP 27 + Debian
bookworm)
* *podman-compose.yml*: ArangoDB + PostgreSQL + app with health checks
* *nginx config*: Reverse proxy with WebSocket support
* *systemd service*: Production process management
* *runtime.exs*: Production configuration from environment variables
* *Health endpoint*: `+GET /api/health+` for container orchestration

===== Data & Seeds

* Expanded seed data: 7 claims, 30 evidence items, 38 relationships, 6
navigation paths
* Audience-weighted navigation for 6 types (journalist, researcher,
policymaker, skeptic, affected person, activist)

===== NUJ Testing Protocols

* Task script for user testing sessions
* Consent form for participants
* Feedback form with SUS scale
* Decision matrix for Month 3 go/no-go
* 5 AsciiDoc protocol documents in docs/testing/

===== Compliance & Trust

* *A2ML v2.1 Trustfile*: Full cyberwar-ready trustfile
(bofig.trustfile.a2ml)
* *Contractiles*: Updated Mustfile, Dustfile, Intentfile, Trustfile
* *RSR compliance*: All 12 required files present
* *19 GitHub Actions workflows*: Security, quality, mirroring,
enforcement
* *TOPOLOGY.md*: Architecture diagram + completion dashboard

==== Changed

* Bumped Phoenix from 1.7.10 to 1.8.3
* Bumped Phoenix LiveView to 1.1.19
* Replaced docker-compose.yml with podman-compose.yml
* Replaced Justfile (legacy Docker references) with comprehensive
Podman-based recipes
* Expanded Mustfile from 3 to 6 mandatory checks
* Updated SECURITY.md to reflect implemented authentication
* Updated ROADMAP.adoc with actual 18-month plan

==== Removed

* `+docker-compose.yml+` (replaced by podman-compose.yml)
* `+Podmanfile.md+` (superseded by Containerfile)
* `+affinescript.json+` (AffineScript not used in Elixir project)
* `+CHANGELOG.adoc+` (duplicate of CHANGELOG.md)
* `+CONTRIBUTING.md+` (kept CONTRIBUTING.adoc)
* `+MAINTAINERS.adoc+` (kept MAINTAINERS.md)
* `+LICENSE.txt+` (kept LICENSE)
* `+contractiles/trust/Trustfile.hs+` (replaced by A2ML Trustfile)

==== Security

* User authentication implemented (phx.gen.auth)
* All browser routes require authentication
* CSRF protection on all forms
* Parameterized AQL queries (unchanged)
* Ecto changesets for all input validation
* Health endpoint unauthenticated (for container orchestration)
* `+mix deps.audit+` integrated into CI

=== [0.1.0] - 2025-11-22 - "`Foundation`" (Phase 1 Month 1)

==== Added

===== Core Infrastructure

* *Elixir/Phoenix application* initialized with Phoenix 1.7.10
* *ArangoDB integration* via `+arangox+` for multi-model database
(document + graph)
* *GraphQL API* with Absinthe 1.7 (15 queries, 11 mutations)
* *Docker Compose* setup for local development (ArangoDB + PostgreSQL)
* *Podman* alternative configuration documented

===== Data Models

* *Claims* schema with Ecto validation and ArangoDB integration
* *Evidence* schema with Zotero metadata (Dublin Core, Schema.org)
* *Relationships* (graph edges) with weighted support/contradiction
* *Navigation Paths* for audience-based exploration (6 audience types)
* *PROMPT Scores* framework (6-dimensional epistemological scoring)

===== GraphQL API

* Queries: `+claim+`, `+claims+`, `+searchClaims+`, `+evidence+`,
`+evidenceByZoteroKey+`, `+evidenceList+`, `+searchEvidence+`,
`+evidenceChain+`, `+navigationPath+`, `+navigationPaths+`
* Mutations: `+createClaim+`, `+updateClaim+`, `+deleteClaim+`,
`+createEvidence+`, `+updateEvidence+`, `+importFromZotero+`,
`+createRelationship+`, `+updateRelationship+`, `+deleteRelationship+`,
`+createNavigationPath+`, `+autoGeneratePath+`
* Custom types: `+PromptScores+`, `+Claim+`, `+Evidence+`,
`+Relationship+`, `+NavigationPath+`
* Union types: `+graph_node+` (Claim | Evidence)

===== Algorithms

* *Evidence chain traversal* (multi-hop graph traversal, depth-limited)
* *Shortest path* algorithm (ArangoDB native SHORTEST_PATH)
* *Propagated weight calculation* (multiplicative decay along paths)
* *Contradiction detection* (claims with conflicting evidence)
* *Audience-weighted PROMPT scoring* (different priorities per user
type)
* *Auto-generate navigation paths* (ML-free heuristic based on PROMPT
scores)

===== Test Data

* *UK Inflation 2023 investigation* seed dataset:
** 7 claims (primary, supporting, counter) with confidence levels
** 10 evidence items (official statistics, academic, think tanks,
interviews)
** 10 relationships (supports, contradicts, contextualizes)
** 3 navigation paths (researcher, policymaker, affected person)

===== Documentation

* *README.md* with quick start guide and GraphQL examples
* *ARCHITECTURE.md* (~4,000 words): data model, database design, API
specs, algorithms
* *ROADMAP.md* (~3,500 words): 18-month plan, 3 phases, decision points,
success metrics
* *CLAUDE.md* (~2,500 words): AI assistant context, philosophical core,
dev patterns
* *docs/database-evaluation.md*: ArangoDB vs SurrealDB vs Virtuoso
comparison
* *docs/zotero-integration.md*: Two-way sync design, extension code
templates

===== Visualization

* *D3.js graph visualization* (force-directed layout):
** Color-coded by PROMPT scores (red→yellow→green gradient)
** Interactive: drag nodes, zoom, pan, tooltips
** Relationship types: supports (green), contradicts (red),
contextualizes (gray)
** PROMPT score badges on nodes

===== RSR Compliance (Rhodium Standard Repository)

* *LICENSE.txt*: Dual license (MIT + Palimpsest v0.8) for emotional
safety
* *SECURITY.md*: Comprehensive security policy, vulnerability
disclosure, GDPR compliance
* *CONTRIBUTING.md*: TPCF Perimeter 3 model, 90-day reversibility,
contribution guidelines
* *CODE_OF_CONDUCT.md*: CCCP (Community-Centric Code of Practice),
emotional safety
* *MAINTAINERS.md*: Governance model, emotional temperature metrics,
decision framework
* *CHANGELOG.md*: This file (SemVer + Keep a Changelog format)

===== Configuration

* *mix.exs* with all dependencies (Phoenix, Absinthe, Arangox, Oban)
* **config/*.exs** for dev/test/prod/runtime environments
* *.env.example* with documented environment variables
* *.gitignore* comprehensive Elixir/Phoenix rules

==== Changed

* N/A (initial release)

==== Deprecated

* N/A

==== Removed

* N/A

==== Fixed

* N/A

==== Security

* *Parameterized AQL queries* to prevent injection attacks
* *Ecto changesets* for input validation
* *GraphQL schema validation* at API boundary
* *No unsafe Elixir patterns* (no `+String.to_existing_atom/1+` on user
input)
* *GDPR compliance* design: anonymizable interview subjects, soft
deletes

=== Project Metadata

*Repository*: https://github.com/Hyperpolymath/bofig *Contributors*:
@Hyperpolymath, Claude (AI assistant) *License*: MPL-2.0 *Status*: Phase
1 PoC v1.0.0 complete

=== Version Numbering

We use *Semantic Versioning* (SemVer):

* *MAJOR*: Breaking API changes, architectural rewrites
* *MINOR*: New features, backwards-compatible
* *PATCH*: Bug fixes, documentation, security patches

*Phase Mapping:* - 1.0.x = Phase 1 PoC (Months 1-6) - 2.0.x = Phase 2
Platform (Months 7-12) - 3.0.0 = Phase 3 Production (Month 18)

=== Contribution Credits

==== 0.1.0 Contributors

* *@Hyperpolymath*: Project concept, architecture, PhD research
integration
* *Claude (Anthropic)*: Code implementation, documentation, RSR
compliance

_All contributors are listed in .well-known/humans.txt_

=== Upgrade Guide

==== From: Nothing → 0.1.0

*Initial Installation:*

[arabic]
. Clone repository
. Install dependencies: `+mix deps.get+`
. Start databases: `+docker-compose up -d+`
. Setup ArangoDB: `+iex -S mix+` →
`+EvidenceGraph.ArangoDB.setup_database()+`
. Load seed data: `+mix run priv/repo/seeds.exs+`
. Start server: `+mix phx.server+`

See README.md for detailed instructions.

==== Breaking Changes

* N/A (initial release)

=== Deprecation Warnings

* None currently

=== Roadmap Preview

*Next Release (1.1.0) - Phase 1 Month 3-4:* - Zotero browser extension
(one-click import) - Two-way sync between Zotero library and Evidence
Graph - Month 3 decision point: Continue or pivot based on NUJ testing

*Future (2.0.0) - Phase 2:* - Multi-investigation dashboard - Real-time
collaborative editing - IPFS provenance integration - Hetzner Cloud
deployment

See ROADMAP.adoc for full 18-month plan.

=== Contact & Support

* *Issues*: https://github.com/Hyperpolymath/bofig/issues
* *Discussions*: https://github.com/Hyperpolymath/bofig/discussions
* *Security*: security@evidencegraph.org (see SECURITY.md)
* *Governance*: See MAINTAINERS.md

'''''

*Changelog Maintenance*: This file is updated with every release. For
unreleased changes, see Git commit history.

_Format: https://keepachangelog.com/[Keep a Changelog]_ _Versioning:
https://semver.org/[Semantic Versioning]_ _Last Updated: 2026-02-21_
Loading
Loading