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
6 changes: 3 additions & 3 deletions .devcontainer/Containerfile
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
# SPDX-License-Identifier: MPL-2.0
# Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) <j.d.a.jewell@open.ac.uk>
#
# Dev Container image for TradeUnionist.jl
# Dev Container image for TradeUnionism.jl
# Base: Chainguard Wolfi (minimal, supply-chain-secure)
# Build: podman build -t TradeUnionist.jl-dev -f .devcontainer/Containerfile .
# Build: podman build -t TradeUnionism.jl-dev -f .devcontainer/Containerfile .

FROM cgr.dev/chainguard/wolfi-base:latest

Expand All @@ -24,7 +24,7 @@ RUN groupadd -g 1000 nonroot || true \
&& useradd -m -u 1000 -g 1000 -s /bin/bash nonroot || true

# Set workspace directory
WORKDIR /workspaces/TradeUnionist.jl
WORKDIR /workspaces/TradeUnionism.jl

# Default shell
ENV SHELL=/bin/bash
Expand Down
2 changes: 1 addition & 1 deletion .devcontainer/README.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -25,4 +25,4 @@ This dev container uses `cgr.dev/chainguard/wolfi-base` with git, curl, bash, an

== Customization

Replace `TradeUnionist.Jl` placeholders in both `devcontainer.json` and `Containerfile` with your actual project name. Run `just deps` to verify the environment after first launch.
Replace `TradeUnionism.Jl` placeholders in both `devcontainer.json` and `Containerfile` with your actual project name. Run `just deps` to verify the environment after first launch.
4 changes: 2 additions & 2 deletions .devcontainer/devcontainer.json
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
// SPDX-License-Identifier: MPL-2.0
// Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) <j.d.a.jewell@open.ac.uk>
//
// Dev Container configuration for TradeUnionist.jl
// Dev Container configuration for TradeUnionism.jl
// Works with: VS Code Dev Containers, GitHub Codespaces, Gitpod
// Container runtime: Podman (recommended) or any OCI-compliant runtime
{
"name": "TradeUnionist.jl",
"name": "TradeUnionism.jl",

"build": {
"dockerfile": "Containerfile",
Expand Down
2 changes: 1 addition & 1 deletion .editorconfig
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# TradeUnionist.jl - Editor Configuration
# TradeUnionism.jl - Editor Configuration
# https://editorconfig.org

root = true
Expand Down
2 changes: 1 addition & 1 deletion .envrc
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ if has nix && [ -f flake.nix ]; then
fi

# Project environment variables
export PROJECT_NAME="TradeUnionist.jl"
export PROJECT_NAME="TradeUnionism.jl"
export RSR_TIER="infrastructure"
# export DATABASE_URL="..."
# export API_KEY="..."
Expand Down
8 changes: 4 additions & 4 deletions .guix-channel
Original file line number Diff line number Diff line change
@@ -1,20 +1,20 @@
;; SPDX-License-Identifier: MPL-2.0
;; Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) <j.d.a.jewell@open.ac.uk>
;;
;; Guix channel definition for TradeUnionist.jl
;; Guix channel definition for TradeUnionism.jl
;;
;; To use this channel, add to ~/.config/guix/channels.scm:
;;
;; (channel
;; (name 'TradeUnionist.jl)
;; (url "https://github.com/hyperpolymath/TradeUnionist.jl")
;; (name 'TradeUnionism.jl)
;; (url "https://github.com/hyperpolymath/TradeUnionism.jl")
;; (branch "main"))
;;
;; Then: guix pull

(channel
(version 0)
(url "https://github.com/hyperpolymath/TradeUnionist.jl")
(url "https://github.com/hyperpolymath/TradeUnionism.jl")
(dependencies
(channel
(name 'guix)
Expand Down
2 changes: 1 addition & 1 deletion .machine_readable/6a2/ECOSYSTEM.a2ml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
# Converted from ECOSYSTEM.scm on 2026-03-15

[metadata]
project = "TradeUnionist.jl"
project = "TradeUnionism.jl"
ecosystem = "hyperpolymath"

[position]
Expand Down
2 changes: 1 addition & 1 deletion .machine_readable/6a2/META.a2ml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
# Converted from META.scm on 2026-03-15

[metadata]
project = "TradeUnionist.jl"
project = "TradeUnionism.jl"
author = "Jonathan D.A. Jewell <j.d.a.jewell@open.ac.uk>"
license = "MPL-2.0"
standard = "RSR 2026"
4 changes: 2 additions & 2 deletions .machine_readable/6a2/STATE.a2ml
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,12 @@
# Converted from STATE.scm on 2026-03-15

[metadata]
project = "TradeUnionist.jl"
project = "TradeUnionism.jl"
version = "0.1.0"
last-updated = "2026-03-15"
status = "active"

[project-context]
name = "TradeUnionist.jl"
name = "TradeUnionism.jl"
completion-percentage = 40
phase = "alpha"
6 changes: 3 additions & 3 deletions .machine_readable/6a2/anchor/ANCHOR.a2ml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# ⚓ ANCHOR: TradeUnionist.jl
# This is the canonical authority for the TradeUnionist.jl repository.
# ⚓ ANCHOR: TradeUnionism.jl
# This is the canonical authority for the TradeUnionism.jl repository.

id: "org.hyperpolymath.TradeUnionist.jl"
id: "org.hyperpolymath.TradeUnionism.jl"
version: "1.0.0"
clade: "unknown"
status: "active"
Expand Down
10 changes: 5 additions & 5 deletions .machine_readable/CLADE.a2ml
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@
uuid = "f28895eb-673c-5376-930c-8aab9f69b6a6"
primary-forge = "github"
primary-owner = "hyperpolymath"
canonical-name = "TradeUnionist.jl"
prefixed-name = "dx-TradeUnionist.jl"
canonical-name = "TradeUnionism.jl"
prefixed-name = "dx-TradeUnionism.jl"

[clade]
primary = "dx"
Expand All @@ -16,9 +16,9 @@ assigned = "2026-03-16"
rationale = ""

[forges]
github = "hyperpolymath/TradeUnionist.jl"
gitlab = "hyperpolymath/TradeUnionist.jl"
bitbucket = "hyperpolymath/TradeUnionist.jl"
github = "hyperpolymath/TradeUnionism.jl"
gitlab = "hyperpolymath/TradeUnionism.jl"
bitbucket = "hyperpolymath/TradeUnionism.jl"

[lineage]
type = "standalone"
Expand Down
2 changes: 1 addition & 1 deletion .machine_readable/contractiles/Justfile
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ set positional-arguments := true
import? "contractile.just"

# Project metadata — customize these
project := "TradeUnionist.jl"
project := "TradeUnionism.jl"
version := "0.1.0"
tier := "infrastructure" # 1 | 2 | infrastructure

Expand Down
4 changes: 2 additions & 2 deletions .reuse/dep5
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Upstream-Name: TradeUnionist.jl
Upstream-Name: TradeUnionism.jl
Upstream-Contact: Jonathan D.A. Jewell <j.d.a.jewell@open.ac.uk>
Source: https://github.com/hyperpolymath/TradeUnionist.jl
Source: https://github.com/hyperpolymath/TradeUnionism.jl

# Default: all files are MPL-2.0
Files: *
Expand Down
4 changes: 2 additions & 2 deletions .well-known/security.txt
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,6 @@ Contact: mailto:{{SECURITY_EMAIL}}
Expires: 2026-12-31T23:59:59.000Z
Encryption: {{PGP_KEY_URL}}
Preferred-Languages: en
Canonical: https://github.com/hyperpolymath/TradeUnionist.jl/.well-known/security.txt
Policy: https://github.com/hyperpolymath/TradeUnionist.jl/blob/main/SECURITY.md
Canonical: https://github.com/hyperpolymath/TradeUnionism.jl/.well-known/security.txt
Policy: https://github.com/hyperpolymath/TradeUnionism.jl/blob/main/SECURITY.md
Hiring: https://{{WEBSITE}}/careers
4 changes: 2 additions & 2 deletions ABI-FFI-README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ Copyright (c) Jonathan D.A. Jewell <j.d.a.jewell@open.ac.uk>
-->
{{~ Aditionally delete this line and fill out the template below ~}}

# TradeUnionist.jl ABI/FFI Documentation
# TradeUnionism.jl ABI/FFI Documentation

## Overview

Expand Down Expand Up @@ -251,7 +251,7 @@ gcc -o example example.c -l{{project}} -L./zig-out/lib
### From Idris2

```idris
import TradeUnionist.jl.ABI.Foreign
import TradeUnionism.jl.ABI.Foreign

main : IO ()
main = do
Expand Down
10 changes: 5 additions & 5 deletions CODE_OF_CONDUCT.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,10 @@ Copyright (c) Jonathan D.A. Jewell <j.d.a.jewell@open.ac.uk>
============================================================================
TEMPLATE INSTRUCTIONS (delete this block before publishing)
============================================================================
Replace all TradeUnionist.jl values:
TradeUnionist.Jl - Your project name
Replace all TradeUnionism.jl values:
TradeUnionism.Jl - Your project name
hyperpolymath - GitHub/GitLab username or org
TradeUnionist.jl - Repository name
TradeUnionism.jl - Repository name
j.d.a.jewell@open.ac.uk - Email for conduct reports
{{CONDUCT_TEAM}} - Name of conduct team/committee
{{RESPONSE_TIME}} - Initial response SLA (e.g., 48 hours)
Expand All @@ -26,7 +26,7 @@ Review and customise:

## Our Pledge

We as members, contributors, and leaders pledge to make participation in TradeUnionist.Jl a harassment-free experience for everyone, regardless of age, body size, visible or invisible disability, ethnicity, sex characteristics, gender identity and expression, level of experience, education, socio-economic status, nationality, personal appearance, race, caste, colour, religion, or sexual identity and orientation.
We as members, contributors, and leaders pledge to make participation in TradeUnionism.Jl a harassment-free experience for everyone, regardless of age, body size, visible or invisible disability, ethnicity, sex characteristics, gender identity and expression, level of experience, education, socio-economic status, nationality, personal appearance, race, caste, colour, religion, or sexual identity and orientation.

We pledge to act and interact in ways that contribute to an open, welcoming, diverse, inclusive, and healthy community.

Expand Down Expand Up @@ -314,7 +314,7 @@ We thank these communities for their leadership in creating welcoming spaces.

If you have questions about this Code of Conduct:

- Open a [Discussion](https://github.com/hyperpolymath/TradeUnionist.jl/discussions) (for general questions)
- Open a [Discussion](https://github.com/hyperpolymath/TradeUnionism.jl/discussions) (for general questions)
- Email j.d.a.jewell@open.ac.uk (for private questions)
- Contact any maintainer directly

Expand Down
18 changes: 9 additions & 9 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,15 +3,15 @@ SPDX-License-Identifier: CC-BY-SA-4.0
Copyright (c) Jonathan D.A. Jewell <j.d.a.jewell@open.ac.uk>
-->
# Clone the repository
git clone https://github.com/hyperpolymath/TradeUnionist.jl.git
cd TradeUnionist.jl
git clone https://github.com/hyperpolymath/TradeUnionism.jl.git
cd TradeUnionism.jl

# Using Nix (recommended for reproducibility)
nix develop

# Or using toolbox/distrobox
toolbox create TradeUnionist.jl-dev
toolbox enter TradeUnionist.jl-dev
toolbox create TradeUnionism.jl-dev
toolbox enter TradeUnionism.jl-dev
# Install dependencies manually

# Verify setup
Expand All @@ -21,7 +21,7 @@ just test # Run test suite

### Repository Structure
```
TradeUnionist.jl/
TradeUnionism.jl/
├── src/ # Source code (Perimeter 1-2)
├── lib/ # Library code (Perimeter 1-2)
├── extensions/ # Extensions (Perimeter 2)
Expand Down Expand Up @@ -95,10 +95,10 @@ Use the [feature request template](.github/ISSUE_TEMPLATE/feature_request.md) an

Look for issues labelled:

- [`good first issue`](https://github.com/hyperpolymath/TradeUnionist.jl/labels/good%20first%20issue) — Simple Perimeter 3 tasks
- [`help wanted`](https://github.com/hyperpolymath/TradeUnionist.jl/labels/help%20wanted) — Community help needed
- [`documentation`](https://github.com/hyperpolymath/TradeUnionist.jl/labels/documentation) — Docs improvements
- [`perimeter-3`](https://github.com/hyperpolymath/TradeUnionist.jl/labels/perimeter-3) — Community sandbox scope
- [`good first issue`](https://github.com/hyperpolymath/TradeUnionism.jl/labels/good%20first%20issue) — Simple Perimeter 3 tasks
- [`help wanted`](https://github.com/hyperpolymath/TradeUnionism.jl/labels/help%20wanted) — Community help needed
- [`documentation`](https://github.com/hyperpolymath/TradeUnionism.jl/labels/documentation) — Docs improvements
- [`perimeter-3`](https://github.com/hyperpolymath/TradeUnionism.jl/labels/perimeter-3) — Community sandbox scope

---

Expand Down
2 changes: 1 addition & 1 deletion Containerfile
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# SPDX-License-Identifier: MPL-2.0
# Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) <j.d.a.jewell@open.ac.uk>
#
# Containerfile for TradeUnionist.jl
# Containerfile for TradeUnionism.jl
# Build: podman build -t {{project}}:latest -f Containerfile .
# Run: podman run --rm -it {{project}}:latest
# Seal: selur seal {{project}}:latest
Expand Down
12 changes: 6 additions & 6 deletions EXPLAINME.adoc
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
// SPDX-License-Identifier: CC-BY-SA-4.0
// Copyright (c) Jonathan D.A. Jewell <j.d.a.jewell@open.ac.uk>
= TradeUnionist.jl — Show Me The Receipts
= TradeUnionism.jl — Show Me The Receipts
:toc:
:icons: font

Expand Down Expand Up @@ -56,9 +56,9 @@ ____

== Dogfooded Across The Account

TradeUnionist.jl is the **labor analytics tier** for ecosystem operations:
- **PRComms.jl**: Uses TradeUnionist data for member alerts and union press releases (via `comms_bridge.jl` export at line 60)
- **PostDisciplinary.jl**: TradeUnionist labor economics data feeds into cross-disciplinary research (union density as `LinkedEntity`)
TradeUnionism.jl is the **labor analytics tier** for ecosystem operations:
- **PRComms.jl**: Uses TradeUnionism data for member alerts and union press releases (via `comms_bridge.jl` export at line 60)
- **PostDisciplinary.jl**: TradeUnionism labor economics data feeds into cross-disciplinary research (union density as `LinkedEntity`)
- **Cliodynamics.jl** (planned): Historical union membership trends and collective bargaining outcomes

Same domain-modeling pattern used in `idaptik` (game economics), `opsm` (package management), `prcomms` (stakeholder communication).
Expand All @@ -69,7 +69,7 @@ Same domain-modeling pattern used in `idaptik` (game economics), `opsm` (package
|===
| Path | What's There

| `src/TradeUnionist.jl` | Module entry point (62 lines); includes 8 submodules; exports 11 core types and 8 operations for worksite, member, grievance, bargaining, spatial, metrics, events, comms
| `src/TradeUnionism.jl` | Module entry point (62 lines); includes 8 submodules; exports 11 core types and 8 operations for worksite, member, grievance, bargaining, spatial, metrics, events, comms
| `src/types.jl` | 1.6KB data structures: `Worksite` (employer, headcount, location, departments, shifts), `MemberRecord` (id, name, worksite_id, department, shift, engagement_level, status), `OrganizerConversation` (timestamp, member_id, message_text, sentiment_score), `GrievanceCase` (id, member_id, description, status, opened_at, updated_at), `ContractClause` (id, text, wage_impact, benefits), `BargainingProposal` (clauses, total_cost, strategic_priority), plus event and union strategy types
| `src/organizing.jl` | Member enrollment and organizer conversation logging; `upsert_member(site, record)` adds/updates member; `log_conversation(member_id, msg, sentiment)` records engagement
| `src/grievances.jl` | Grievance case management: `open_grievance(member_id, description)` creates case; `update_grievance_status(case, status)` transitions state; evidence storage in case metadata
Expand All @@ -89,7 +89,7 @@ Same domain-modeling pattern used in `idaptik` (game economics), `opsm` (package
3. **Metric consistency**: `calc_density`, `calc_coverage`, `calc_leadership_ratio` must all reference the same member set (transactions must not interleave)
4. **Spatial query correctness**: `find_members_near(lat, lon, r)` must be symmetric—if member A is near member B, then B is near A
5. **Costing accuracy**: `cost_proposal` must correctly aggregate all clause costs; no rounding errors >$0.01
6. **PR integration atomicity**: A member alert sent via PRComms must log to TradeUnionist audit trail atomically
6. **PR integration atomicity**: A member alert sent via PRComms must log to TradeUnionism audit trail atomically

== Questions?

Expand Down
4 changes: 2 additions & 2 deletions GOVERNANCE.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,13 @@ Copyright (c) Jonathan D.A. Jewell <j.d.a.jewell@open.ac.uk>
-->
# Project Governance

This document describes the governance model for **TradeUnionist.Jl**.
This document describes the governance model for **TradeUnionism.Jl**.

---

## Project Governance Model

TradeUnionist.Jl follows a **Benevolent Dictator For Life (BDFL)** governance model.
TradeUnionism.Jl follows a **Benevolent Dictator For Life (BDFL)** governance model.
This model is well-suited for solo maintainers and small project teams where rapid,
consistent decision-making is more valuable than formal consensus processes.

Expand Down
2 changes: 1 addition & 1 deletion Justfile
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ set positional-arguments := true
import? "contractile.just"

# Project metadata — customize these
project := "TradeUnionist.jl"
project := "TradeUnionism.jl"
version := "0.1.0"
tier := "infrastructure" # 1 | 2 | infrastructure

Expand Down
2 changes: 1 addition & 1 deletion MAINTAINERS.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ Copyright (c) Jonathan D.A. Jewell <j.d.a.jewell@open.ac.uk>
-->
# Maintainers

This document lists the current and former maintainers of **TradeUnionist.Jl**.
This document lists the current and former maintainers of **TradeUnionism.Jl**.

---

Expand Down
Loading
Loading