Skip to content

Commit ef536b0

Browse files
committed
docs: v-bump README/CLAUDE + coordinated 2026-07 correctness release note
1 parent 8719314 commit ef536b0

2 files changed

Lines changed: 40 additions & 0 deletions

File tree

CHANGELOG.md

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
# Changelog
2+
3+
## 0.1.5 — 2026-07-19
4+
5+
First real build of the alignment pillar. Prior versions on PyPI (`0.1.0`,
6+
`0.1.1`) and the reserved ClawHub `0.1.4` were an **empty placeholder shell**;
7+
this release replaces that shell with a working package. Part of the
8+
coordinated 2026-07 correctness release for the Nostr library family (staged,
9+
pending PyPI/ClawHub publish).
10+
11+
### Added
12+
13+
- **Deterministic pre-action five-lens compass.** `AlignmentEnclave` evaluates
14+
a proposed action through five pure lenses — Builder (can I execute this
15+
reliably?), Owner (does this protect my human?), Defense (does this harden
16+
against threats?), Sovereign (do I stay well while my human is away?), and
17+
Partnership (does this strengthen trust?) — and aggregates them to the worst
18+
severity (`CLEAR < CAUTION < YIELD < STOP`), mapping to an escalation level
19+
(`NONE` / `INFORM` / `ASK` / `HALT`).
20+
- `AlignmentEnclave.check(...)` returns a `CheckResult` (`should_proceed`,
21+
`should_escalate`, `projection`, `escalation`) and keeps an in-memory
22+
decision log via `record_proceeded()` / `record_deferred()`.
23+
- A `STOP` always defers to the human: `record_proceeded()` after a STOP raises
24+
`RuntimeError` unless `owner_overrode=True`.
25+
- Frozen dataclasses throughout (`ActionContext`, `LensResult`, `Projection`,
26+
`EscalationDecision`, `CheckResult`, `Decision`, `AlignmentConfig`).
27+
- **Zero runtime dependencies** — the pillar installs standalone and does not
28+
require `nostrkey` or anything else.
29+
- Orchestrator contract: `AlignmentEnclave.create(owner_npub=..., owner_name=...)`
30+
then `.check(domain=..., description=..., **context)`, filtering unknown
31+
kwargs so `nse-orchestrator` can pass a superset without a `TypeError`.
32+
33+
### Tests
34+
35+
- Known-answer and per-lens unit tests covering the five lens functions,
36+
severity aggregation, escalation mapping, and the STOP-defers-to-human
37+
invariant. The evaluation core is pure (no I/O, no randomness), so the same
38+
`ActionContext` always yields the same `CheckResult`.

README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@ pip install social-alignment
1818

1919
> **Import:** `pip install social-alignment``from social_alignment import AlignmentEnclave`
2020
21+
> **v0.1.5 — part of the coordinated 2026-07 correctness release** (staged, pending PyPI publish). This is the first real build of the alignment pillar — the package was previously an empty placeholder shell. It ships the deterministic five-lens compass described below, with a pure, dependency-free evaluation core and known-answer tests. See [`CHANGELOG.md`](./CHANGELOG.md).
22+
2123
## Quick Start
2224

2325
```python

0 commit comments

Comments
 (0)